use nitg to bootstrap; drop bootstrap of nitc
[nit.git] / c_src / standard___collection___abstract_collection._sep.c
diff --git a/c_src/standard___collection___abstract_collection._sep.c b/c_src/standard___collection___abstract_collection._sep.c
deleted file mode 100644 (file)
index dd652fa..0000000
+++ /dev/null
@@ -1,2444 +0,0 @@
-/* This C file is generated by NIT to compile module standard___collection___abstract_collection. */
-#include "standard___collection___abstract_collection._sep.h"
-static const char LOCATE_standard___collection___abstract_collection___Collection___iterator[] = "abstract_collection::Collection::iterator";
-val_t standard___collection___abstract_collection___Collection___iterator(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 42;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Collection___iterator;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../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;
-}
-static const char LOCATE_standard___collection___abstract_collection___Collection___iterate[] = "abstract_collection::Collection::iterate";
-void standard___collection___abstract_collection___Collection___iterate(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_standard___collection___abstract_collection;
-  fra.me.line = 45;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Collection___iterate;
-  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;
-  /* ../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 */
-  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 */
-      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 */
-      CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
-    } else {
-      /* ../lib/standard/collection/abstract_collection.nit:50 */
-      goto label2;
-    }
-  }
-  label2: while(0);
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Collection___is_empty[] = "abstract_collection::Collection::is_empty";
-val_t standard___collection___abstract_collection___Collection___is_empty(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 56;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Collection___is_empty;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../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;
-}
-static const char LOCATE_standard___collection___abstract_collection___Collection___length[] = "abstract_collection::Collection::length";
-val_t standard___collection___abstract_collection___Collection___length(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 62;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Collection___length;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../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;
-}
-static const char LOCATE_standard___collection___abstract_collection___Collection___has[] = "abstract_collection::Collection::has";
-val_t standard___collection___abstract_collection___Collection___has(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_standard___collection___abstract_collection;
-  fra.me.line = 68;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Collection___has;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:68 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 68);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___Collection___has_only[] = "abstract_collection::Collection::has_only";
-val_t standard___collection___abstract_collection___Collection___has_only(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_standard___collection___abstract_collection;
-  fra.me.line = 77;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Collection___has_only;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:77 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 77);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___Collection___count[] = "abstract_collection::Collection::count";
-val_t standard___collection___abstract_collection___Collection___count(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_standard___collection___abstract_collection;
-  fra.me.line = 90;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Collection___count;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:90 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 90);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___Collection___first[] = "abstract_collection::Collection::first";
-val_t standard___collection___abstract_collection___Collection___first(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 96;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Collection___first;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:96 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 96);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___NaiveCollection___is_empty[] = "abstract_collection::NaiveCollection::(abstract_collection::Collection::is_empty)";
-val_t standard___collection___abstract_collection___NaiveCollection___is_empty(val_t p0){
-  struct {struct stack_frame_t me;} 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_standard___collection___abstract_collection;
-  fra.me.line = 106;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___NaiveCollection___is_empty;
-  fra.me.has_broke = 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/abstract_collection.nit:106 */
-  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:237 */
-    REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ../lib/standard/collection/abstract_collection.nit:106 */
-    REGB2 = REGB1;
-  }
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB2;
-}
-static const char LOCATE_standard___collection___abstract_collection___NaiveCollection___length[] = "abstract_collection::NaiveCollection::(abstract_collection::Collection::length)";
-val_t standard___collection___abstract_collection___NaiveCollection___length(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___collection___abstract_collection;
-  fra.me.line = 108;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___NaiveCollection___length;
-  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/abstract_collection.nit:110 */
-  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:112 */
-  REGB0 = fra.me.REG[1];
-  goto label2;
-  label2: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-  void OC_standard___collection___abstract_collection___NaiveCollection___length_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;
-    fun_t CREG[1];
-    val_t tmp;
-    /* ../lib/standard/collection/abstract_collection.nit:111 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_standard___collection___abstract_collection;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_standard___collection___abstract_collection___NaiveCollection___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.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    REGB0 = TAG_Int(1);
-    /* ../lib/standard/kernel.nit:245 */
-    REGB0 = TAG_Int(UNTAG_Int(closctx->REG[1])+UNTAG_Int(REGB0));
-    /* ../lib/standard/collection/abstract_collection.nit:111 */
-    closctx->REG[1] = REGB0;
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_standard___collection___abstract_collection___NaiveCollection___has[] = "abstract_collection::NaiveCollection::(abstract_collection::Collection::has)";
-val_t standard___collection___abstract_collection___NaiveCollection___has(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___collection___abstract_collection;
-  fra.me.line = 115;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___NaiveCollection___has;
-  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;
-  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___has_1));
-  switch ((&(fra.me))->has_broke) {
-    case 0: break;
-    case 1: (&(fra.me))->has_broke = 0; goto label3;
-  }
-  /* ../lib/standard/collection/abstract_collection.nit:118 */
-  REGB0 = TAG_Bool(0);
-  fra.me.REG[0] = REGB0;
-  goto label3;
-  label3: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-  void OC_standard___collection___abstract_collection___NaiveCollection___has_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/collection/abstract_collection.nit:117 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_standard___collection___abstract_collection;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_standard___collection___abstract_collection___NaiveCollection___has;
-    fra.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;
-    REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],closctx->REG[1]));
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(0);
-        REGB0 = REGB1;
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
-        REGB0 = REGB1;
-      }
-    }
-    if (UNTAG_Bool(REGB0)) {
-      REGB0 = TAG_Bool(1);
-      closctx->REG[0] = REGB0;
-      closctx->has_broke = 1;
-      goto label2;
-    }
-    label2: while(0);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_standard___collection___abstract_collection___NaiveCollection___has_only[] = "abstract_collection::NaiveCollection::(abstract_collection::Collection::has_only)";
-val_t standard___collection___abstract_collection___NaiveCollection___has_only(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___collection___abstract_collection;
-  fra.me.line = 121;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___NaiveCollection___has_only;
-  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;
-  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___has_only_1));
-  switch ((&(fra.me))->has_broke) {
-    case 0: break;
-    case 1: (&(fra.me))->has_broke = 0; goto label3;
-  }
-  /* ../lib/standard/collection/abstract_collection.nit:124 */
-  REGB0 = TAG_Bool(1);
-  fra.me.REG[0] = REGB0;
-  goto label3;
-  label3: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-  void OC_standard___collection___abstract_collection___NaiveCollection___has_only_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/collection/abstract_collection.nit:123 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_standard___collection___abstract_collection;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_standard___collection___abstract_collection___NaiveCollection___has_only;
-    fra.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;
-    REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],closctx->REG[1]));
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(0);
-        REGB0 = REGB1;
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
-        REGB0 = REGB1;
-      }
-    }
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      REGB0 = TAG_Bool(0);
-      closctx->REG[0] = REGB0;
-      closctx->has_broke = 1;
-      goto label2;
-    }
-    label2: while(0);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_standard___collection___abstract_collection___NaiveCollection___count[] = "abstract_collection::NaiveCollection::(abstract_collection::Collection::count)";
-val_t standard___collection___abstract_collection___NaiveCollection___count(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_standard___collection___abstract_collection;
-  fra.me.line = 127;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___NaiveCollection___count;
-  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/standard/collection/abstract_collection.nit:129 */
-  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:131 */
-  REGB0 = fra.me.REG[2];
-  goto label2;
-  label2: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-  void OC_standard___collection___abstract_collection___NaiveCollection___count_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/collection/abstract_collection.nit:130 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_standard___collection___abstract_collection;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_standard___collection___abstract_collection___NaiveCollection___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.closure_ctx = closctx_param;
-    fra.me.closure_funs = CREG;
-    fra.me.REG[0] = p0;
-    CREG[0] = clos_fun0;
-    REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[0],closctx->REG[1]));
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(0);
-        REGB0 = REGB1;
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
-        REGB0 = REGB1;
-      }
-    }
-    if (UNTAG_Bool(REGB0)) {
-      REGB0 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB0 = TAG_Int(UNTAG_Int(closctx->REG[2])+UNTAG_Int(REGB0));
-      /* ../lib/standard/collection/abstract_collection.nit:130 */
-      closctx->REG[2] = REGB0;
-    }
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_standard___collection___abstract_collection___NaiveCollection___first[] = "abstract_collection::NaiveCollection::(abstract_collection::Collection::first)";
-val_t standard___collection___abstract_collection___NaiveCollection___first(val_t p0){
-  struct {struct stack_frame_t me;} 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_standard___collection___abstract_collection;
-  fra.me.line = 134;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___NaiveCollection___first;
-  fra.me.has_broke = 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/abstract_collection.nit:136 */
-  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*/;
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-  }
-  /* ../lib/standard/kernel.nit:244 */
-  REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ../lib/standard/collection/abstract_collection.nit:136 */
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Assert failed", NULL, LOCATE_standard___collection___abstract_collection, 136);
-  }
-  /* ../lib/standard/collection/abstract_collection.nit:137 */
-  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;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_standard___collection___abstract_collection___Iterator___item[] = "abstract_collection::Iterator::item";
-val_t standard___collection___abstract_collection___Iterator___item(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 144;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Iterator___item;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:144 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 144);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___Iterator___next[] = "abstract_collection::Iterator::next";
-void standard___collection___abstract_collection___Iterator___next(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 148;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Iterator___next;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:148 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 148);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Iterator___is_ok[] = "abstract_collection::Iterator::is_ok";
-val_t standard___collection___abstract_collection___Iterator___is_ok(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 152;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Iterator___is_ok;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:152 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 152);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___Container___first[] = "abstract_collection::Container::(abstract_collection::Collection::first)";
-val_t standard___collection___abstract_collection___Container___first(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 160;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Container___first;
-  fra.me.has_broke = 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/abstract_collection.nit:160 */
-  fra.me.REG[0] = ATTR_standard___collection___abstract_collection___Container____item(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_standard___collection___abstract_collection___Container___is_empty[] = "abstract_collection::Container::(abstract_collection::Collection::is_empty)";
-val_t standard___collection___abstract_collection___Container___is_empty(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 162;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Container___is_empty;
-  fra.me.has_broke = 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/abstract_collection.nit:162 */
-  REGB0 = TAG_Bool(0);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_standard___collection___abstract_collection___Container___length[] = "abstract_collection::Container::(abstract_collection::Collection::length)";
-val_t standard___collection___abstract_collection___Container___length(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 164;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Container___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/collection/abstract_collection.nit:164 */
-  REGB0 = TAG_Int(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_standard___collection___abstract_collection___Container___has[] = "abstract_collection::Container::(abstract_collection::Collection::has)";
-val_t standard___collection___abstract_collection___Container___has(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_standard___collection___abstract_collection;
-  fra.me.line = 166;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Container___has;
-  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/collection/abstract_collection.nit:166 */
-  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)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-      REGB0 = REGB1;
-    }
-  }
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_standard___collection___abstract_collection___Container___has_only[] = "abstract_collection::Container::(abstract_collection::Collection::has_only)";
-val_t standard___collection___abstract_collection___Container___has_only(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_standard___collection___abstract_collection;
-  fra.me.line = 168;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Container___has_only;
-  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/collection/abstract_collection.nit:168 */
-  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)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-      REGB0 = REGB1;
-    }
-  }
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_standard___collection___abstract_collection___Container___count[] = "abstract_collection::Container::(abstract_collection::Collection::count)";
-val_t standard___collection___abstract_collection___Container___count(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_standard___collection___abstract_collection;
-  fra.me.line = 170;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Container___count;
-  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/collection/abstract_collection.nit:172 */
-  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)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* ../lib/standard/collection/abstract_collection.nit:173 */
-    REGB0 = TAG_Int(1);
-    goto label1;
-  } else {
-    /* ../lib/standard/collection/abstract_collection.nit:175 */
-    REGB1 = TAG_Int(0);
-    REGB0 = REGB1;
-    goto label1;
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_standard___collection___abstract_collection___Container___iterator[] = "abstract_collection::Container::(abstract_collection::Collection::iterator)";
-val_t standard___collection___abstract_collection___Container___iterator(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 179;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Container___iterator;
-  fra.me.has_broke = 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/abstract_collection.nit:179 */
-  fra.me.REG[0] = NEW_ContainerIterator_standard___collection___abstract_collection___ContainerIterator___init(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_standard___collection___abstract_collection___Container___init[] = "abstract_collection::Container::init";
-void standard___collection___abstract_collection___Container___init(val_t p0, val_t p1, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___abstract_collection___Container].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_standard___collection___abstract_collection;
-  fra.me.line = 181;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Container___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;
-  /* ../lib/standard/collection/abstract_collection.nit:182 */
-  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;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Container___item[] = "abstract_collection::Container::item";
-val_t standard___collection___abstract_collection___Container___item(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 184;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Container___item;
-  fra.me.has_broke = 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/abstract_collection.nit:184 */
-  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];
-}
-static const char LOCATE_standard___collection___abstract_collection___Container___item__eq[] = "abstract_collection::Container::item=";
-void standard___collection___abstract_collection___Container___item__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___collection___abstract_collection;
-  fra.me.line = 184;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Container___item__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/collection/abstract_collection.nit:184 */
-  ATTR_standard___collection___abstract_collection___Container____item(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___ContainerIterator___item[] = "abstract_collection::ContainerIterator::(abstract_collection::Iterator::item)";
-val_t standard___collection___abstract_collection___ContainerIterator___item(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 191;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___ContainerIterator___item;
-  fra.me.has_broke = 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/abstract_collection.nit:191 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___ContainerIterator____container(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_container", LOCATE_standard___collection___abstract_collection, 191);
-  }
-  fra.me.REG[0] = ATTR_standard___collection___abstract_collection___ContainerIterator____container(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___abstract_collection___Container___item(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_standard___collection___abstract_collection___ContainerIterator___next[] = "abstract_collection::ContainerIterator::(abstract_collection::Iterator::next)";
-void standard___collection___abstract_collection___ContainerIterator___next(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 193;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___ContainerIterator___next;
-  fra.me.has_broke = 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/abstract_collection.nit:193 */
-  REGB0 = TAG_Bool(0);
-  ATTR_standard___collection___abstract_collection___ContainerIterator____is_ok(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___ContainerIterator___init[] = "abstract_collection::ContainerIterator::init";
-void standard___collection___abstract_collection___ContainerIterator___init(val_t p0, val_t p1, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___abstract_collection___ContainerIterator].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos1]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_standard___collection___abstract_collection;
-  fra.me.line = 195;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___ContainerIterator___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;
-  /* ../lib/standard/collection/abstract_collection.nit:195 */
-  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;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___ContainerIterator___is_ok[] = "abstract_collection::ContainerIterator::(abstract_collection::Iterator::is_ok)";
-val_t standard___collection___abstract_collection___ContainerIterator___is_ok(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 197;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___ContainerIterator___is_ok;
-  fra.me.has_broke = 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/abstract_collection.nit:197 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___ContainerIterator____is_ok(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_ok", LOCATE_standard___collection___abstract_collection, 197);
-  }
-  REGB0 = ATTR_standard___collection___abstract_collection___ContainerIterator____is_ok(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_standard___collection___abstract_collection___RemovableCollection___clear[] = "abstract_collection::RemovableCollection::clear";
-void standard___collection___abstract_collection___RemovableCollection___clear(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 205;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___RemovableCollection___clear;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:205 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 205);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___RemovableCollection___remove[] = "abstract_collection::RemovableCollection::remove";
-void standard___collection___abstract_collection___RemovableCollection___remove(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_standard___collection___abstract_collection;
-  fra.me.line = 208;
-  fra.me.meth = LOCATE_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:208 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 208);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___RemovableCollection___remove_all[] = "abstract_collection::RemovableCollection::remove_all";
-void standard___collection___abstract_collection___RemovableCollection___remove_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_standard___collection___abstract_collection;
-  fra.me.line = 211;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___RemovableCollection___remove_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;
-  /* ../lib/standard/collection/abstract_collection.nit:212 */
-  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)) {
-      CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    } else {
-      goto label1;
-    }
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___SimpleCollection___add[] = "abstract_collection::SimpleCollection::add";
-void standard___collection___abstract_collection___SimpleCollection___add(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_standard___collection___abstract_collection;
-  fra.me.line = 218;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___SimpleCollection___add;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:218 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 218);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___SimpleCollection___add_all[] = "abstract_collection::SimpleCollection::add_all";
-void standard___collection___abstract_collection___SimpleCollection___add_all(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___collection___abstract_collection;
-  fra.me.line = 222;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___SimpleCollection___add_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;
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_standard___collection___abstract_collection___SimpleCollection___add_all_1));
-  stack_frame_head = fra.me.prev;
-  return;
-}
-  void OC_standard___collection___abstract_collection___SimpleCollection___add_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;
-    /* ../lib/standard/collection/abstract_collection.nit:223 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_standard___collection___abstract_collection;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_standard___collection___abstract_collection___SimpleCollection___add_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;
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_standard___collection___abstract_collection___Set___has_only[] = "abstract_collection::Set::(abstract_collection::Collection::has_only)";
-val_t standard___collection___abstract_collection___Set___has_only(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 REGB2;
-  val_t REGB3;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_standard___collection___abstract_collection;
-  fra.me.line = 238;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Set___has_only;
-  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/collection/abstract_collection.nit:240 */
-  REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
-  /* ../lib/standard/collection/abstract_collection.nit:241 */
-  REGB1 = TAG_Int(1);
-  REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    /* ../lib/standard/kernel.nit:237 */
-    REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ../lib/standard/collection/abstract_collection.nit:241 */
-    REGB2 = REGB1;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    /* ../lib/standard/collection/abstract_collection.nit:242 */
-    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:243 */
-    REGB1 = TAG_Int(0);
-    REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
-    if (UNTAG_Bool(REGB3)) {
-    } else {
-      /* ../lib/standard/kernel.nit:237 */
-      REGB1 = TAG_Bool((REGB0)==(REGB1));
-      /* ../lib/standard/collection/abstract_collection.nit:243 */
-      REGB3 = REGB1;
-    }
-    if (UNTAG_Bool(REGB3)) {
-      /* ../lib/standard/collection/abstract_collection.nit:244 */
-      REGB3 = TAG_Bool(1);
-      REGB2 = REGB3;
-      goto label1;
-    } else {
-      /* ../lib/standard/collection/abstract_collection.nit:246 */
-      REGB3 = TAG_Bool(0);
-      REGB2 = REGB3;
-      goto label1;
-    }
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB2;
-}
-static const char LOCATE_standard___collection___abstract_collection___Set___count[] = "abstract_collection::Set::(abstract_collection::Collection::count)";
-val_t standard___collection___abstract_collection___Set___count(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_standard___collection___abstract_collection;
-  fra.me.line = 250;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Set___count;
-  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/collection/abstract_collection.nit:253 */
-  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:254 */
-    REGB0 = TAG_Int(1);
-    goto label1;
-  } else {
-    /* ../lib/standard/collection/abstract_collection.nit:256 */
-    REGB1 = TAG_Int(0);
-    REGB0 = REGB1;
-    goto label1;
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_standard___collection___abstract_collection___Set___remove_all[] = "abstract_collection::Set::(abstract_collection::RemovableCollection::remove_all)";
-void standard___collection___abstract_collection___Set___remove_all(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___collection___abstract_collection;
-  fra.me.line = 260;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Set___remove_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;
-  /* ../lib/standard/collection/abstract_collection.nit:261 */
-  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;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapRead_____bra[] = "abstract_collection::MapRead::[]";
-val_t standard___collection___abstract_collection___MapRead_____bra(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_standard___collection___abstract_collection;
-  fra.me.line = 266;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapRead_____bra;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:266 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 266);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapRead___get_or_default[] = "abstract_collection::MapRead::get_or_default";
-val_t standard___collection___abstract_collection___MapRead___get_or_default(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 tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_standard___collection___abstract_collection;
-  fra.me.line = 269;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapRead___get_or_default;
-  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/collection/abstract_collection.nit:272 */
-  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)) {
-    fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    goto label1;
-  }
-  /* ../lib/standard/collection/abstract_collection.nit:273 */
-  fra.me.REG[1] = fra.me.REG[2];
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_standard___collection___abstract_collection___MapRead___has_key[] = "abstract_collection::MapRead::has_key";
-val_t standard___collection___abstract_collection___MapRead___has_key(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___collection___abstract_collection;
-  fra.me.line = 276;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapRead___has_key;
-  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/collection/abstract_collection.nit:277 */
-  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;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapRead___iterator[] = "abstract_collection::MapRead::iterator";
-val_t standard___collection___abstract_collection___MapRead___iterator(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 279;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapRead___iterator;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:279 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 279);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapRead___iterate[] = "abstract_collection::MapRead::iterate";
-void standard___collection___abstract_collection___MapRead___iterate(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_standard___collection___abstract_collection;
-  fra.me.line = 282;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapRead___iterate;
-  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.closure_ctx = closctx_param;
-  fra.me.closure_funs = CREG;
-  fra.me.REG[0] = p0;
-  CREG[0] = clos_fun0;
-  /* ../lib/standard/collection/abstract_collection.nit:286 */
-  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:287 */
-  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:288 */
-      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:289 */
-      CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[0])(fra.me.REG[0]);
-    } else {
-      /* ../lib/standard/collection/abstract_collection.nit:287 */
-      goto label2;
-    }
-  }
-  label2: while(0);
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapRead___values[] = "abstract_collection::MapRead::values";
-val_t standard___collection___abstract_collection___MapRead___values(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 293;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapRead___values;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:293 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 293);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapRead___keys[] = "abstract_collection::MapRead::keys";
-val_t standard___collection___abstract_collection___MapRead___keys(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 298;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapRead___keys;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:298 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 298);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapRead___is_empty[] = "abstract_collection::MapRead::is_empty";
-val_t standard___collection___abstract_collection___MapRead___is_empty(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 303;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapRead___is_empty;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:303 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 303);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapRead___length[] = "abstract_collection::MapRead::length";
-val_t standard___collection___abstract_collection___MapRead___length(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 306;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapRead___length;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:306 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 306);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___Map_____braeq[] = "abstract_collection::Map::[]=";
-void standard___collection___abstract_collection___Map_____braeq(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_standard___collection___abstract_collection;
-  fra.me.line = 336;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Map_____braeq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../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;
-}
-static const char LOCATE_standard___collection___abstract_collection___Map___recover_with[] = "abstract_collection::Map::recover_with";
-void standard___collection___abstract_collection___Map___recover_with(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_standard___collection___abstract_collection;
-  fra.me.line = 339;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Map___recover_with;
-  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;
-  /* ../lib/standard/collection/abstract_collection.nit:343 */
-  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:344 */
-  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:345 */
-      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:346 */
-      CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[1])(fra.me.REG[1]);
-    } else {
-      /* ../lib/standard/collection/abstract_collection.nit:344 */
-      goto label1;
-    }
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Map___clear[] = "abstract_collection::Map::clear";
-void standard___collection___abstract_collection___Map___clear(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 350;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Map___clear;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:350 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 350);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Map___values[] = "abstract_collection::Map::(abstract_collection::MapRead::values)";
-val_t standard___collection___abstract_collection___Map___values(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 353;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Map___values;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:353 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 353);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___Map___keys[] = "abstract_collection::Map::(abstract_collection::MapRead::keys)";
-val_t standard___collection___abstract_collection___Map___keys(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 355;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Map___keys;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:355 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 355);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapIterator___item[] = "abstract_collection::MapIterator::item";
-val_t standard___collection___abstract_collection___MapIterator___item(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 360;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapIterator___item;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:360 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 360);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapIterator___key[] = "abstract_collection::MapIterator::key";
-val_t standard___collection___abstract_collection___MapIterator___key(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 364;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapIterator___key;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:364 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 364);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapIterator___next[] = "abstract_collection::MapIterator::next";
-void standard___collection___abstract_collection___MapIterator___next(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 368;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapIterator___next;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:368 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 368);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapIterator___is_ok[] = "abstract_collection::MapIterator::is_ok";
-val_t standard___collection___abstract_collection___MapIterator___is_ok(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 372;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapIterator___is_ok;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:372 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 372);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapKeysIterator___iterator[] = "abstract_collection::MapKeysIterator::iterator";
-val_t standard___collection___abstract_collection___MapKeysIterator___iterator(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 382;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapKeysIterator___iterator;
-  fra.me.has_broke = 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/abstract_collection.nit:382 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___MapKeysIterator_____atiterator(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@iterator", LOCATE_standard___collection___abstract_collection, 382);
-  }
-  fra.me.REG[0] = ATTR_standard___collection___abstract_collection___MapKeysIterator_____atiterator(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_standard___collection___abstract_collection___MapKeysIterator___iterator__eq[] = "abstract_collection::MapKeysIterator::iterator=";
-void standard___collection___abstract_collection___MapKeysIterator___iterator__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___collection___abstract_collection;
-  fra.me.line = 382;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapKeysIterator___iterator__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/collection/abstract_collection.nit:382 */
-  ATTR_standard___collection___abstract_collection___MapKeysIterator_____atiterator(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapKeysIterator___is_ok[] = "abstract_collection::MapKeysIterator::(abstract_collection::Iterator::is_ok)";
-val_t standard___collection___abstract_collection___MapKeysIterator___is_ok(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 385;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapKeysIterator___is_ok;
-  fra.me.has_broke = 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/abstract_collection.nit:385 */
-  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;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapKeysIterator___next[] = "abstract_collection::MapKeysIterator::(abstract_collection::Iterator::next)";
-void standard___collection___abstract_collection___MapKeysIterator___next(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 386;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapKeysIterator___next;
-  fra.me.has_broke = 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/abstract_collection.nit:386 */
-  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;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapKeysIterator___item[] = "abstract_collection::MapKeysIterator::(abstract_collection::Iterator::item)";
-val_t standard___collection___abstract_collection___MapKeysIterator___item(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 387;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapKeysIterator___item;
-  fra.me.has_broke = 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/abstract_collection.nit:387 */
-  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;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_standard___collection___abstract_collection___MapKeysIterator___init[] = "abstract_collection::MapKeysIterator::init";
-void standard___collection___abstract_collection___MapKeysIterator___init(val_t p0, val_t p1, int* init_table){
-  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___abstract_collection___MapKeysIterator].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos2]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_standard___collection___abstract_collection;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapKeysIterator___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;
-  ATTR_standard___collection___abstract_collection___MapKeysIterator_____atiterator(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos2] = 1;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapValuesIterator___iterator[] = "abstract_collection::MapValuesIterator::iterator";
-val_t standard___collection___abstract_collection___MapValuesIterator___iterator(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 393;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapValuesIterator___iterator;
-  fra.me.has_broke = 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/abstract_collection.nit:393 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___MapValuesIterator_____atiterator(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@iterator", LOCATE_standard___collection___abstract_collection, 393);
-  }
-  fra.me.REG[0] = ATTR_standard___collection___abstract_collection___MapValuesIterator_____atiterator(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_standard___collection___abstract_collection___MapValuesIterator___iterator__eq[] = "abstract_collection::MapValuesIterator::iterator=";
-void standard___collection___abstract_collection___MapValuesIterator___iterator__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___collection___abstract_collection;
-  fra.me.line = 393;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapValuesIterator___iterator__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/collection/abstract_collection.nit:393 */
-  ATTR_standard___collection___abstract_collection___MapValuesIterator_____atiterator(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapValuesIterator___is_ok[] = "abstract_collection::MapValuesIterator::(abstract_collection::Iterator::is_ok)";
-val_t standard___collection___abstract_collection___MapValuesIterator___is_ok(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 396;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapValuesIterator___is_ok;
-  fra.me.has_broke = 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/abstract_collection.nit:396 */
-  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;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapValuesIterator___next[] = "abstract_collection::MapValuesIterator::(abstract_collection::Iterator::next)";
-void standard___collection___abstract_collection___MapValuesIterator___next(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 397;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapValuesIterator___next;
-  fra.me.has_broke = 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/abstract_collection.nit:397 */
-  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;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___MapValuesIterator___item[] = "abstract_collection::MapValuesIterator::(abstract_collection::Iterator::item)";
-val_t standard___collection___abstract_collection___MapValuesIterator___item(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 398;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapValuesIterator___item;
-  fra.me.has_broke = 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/abstract_collection.nit:398 */
-  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;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_standard___collection___abstract_collection___MapValuesIterator___init[] = "abstract_collection::MapValuesIterator::init";
-void standard___collection___abstract_collection___MapValuesIterator___init(val_t p0, val_t p1, int* init_table){
-  int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___abstract_collection___MapValuesIterator].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos3]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_standard___collection___abstract_collection;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___MapValuesIterator___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;
-  ATTR_standard___collection___abstract_collection___MapValuesIterator_____atiterator(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos3] = 1;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___SequenceRead___first[] = "abstract_collection::SequenceRead::(abstract_collection::Collection::first)";
-val_t standard___collection___abstract_collection___SequenceRead___first(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 405;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___SequenceRead___first;
-  fra.me.has_broke = 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/abstract_collection.nit:409 */
-  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, 409);
-  }
-  /* ../lib/standard/collection/abstract_collection.nit:410 */
-  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;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_standard___collection___abstract_collection___SequenceRead_____bra[] = "abstract_collection::SequenceRead::[]";
-val_t standard___collection___abstract_collection___SequenceRead_____bra(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_standard___collection___abstract_collection;
-  fra.me.line = 413;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___SequenceRead_____bra;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:413 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 413);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___SequenceRead___last[] = "abstract_collection::SequenceRead::last";
-val_t standard___collection___abstract_collection___SequenceRead___last(val_t p0){
-  struct {struct stack_frame_t me;} 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___collection___abstract_collection;
-  fra.me.line = 418;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___SequenceRead___last;
-  fra.me.has_broke = 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/abstract_collection.nit:422 */
-  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, 422);
-  }
-  /* ../lib/standard/collection/abstract_collection.nit:423 */
-  REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
-  REGB1 = TAG_Int(1);
-  /* ../lib/standard/kernel.nit:247 */
-  REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ../lib/standard/collection/abstract_collection.nit:423 */
-  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);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_standard___collection___abstract_collection___SequenceRead___index_of[] = "abstract_collection::SequenceRead::index_of";
-val_t standard___collection___abstract_collection___SequenceRead___index_of(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_standard___collection___abstract_collection;
-  fra.me.line = 426;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___SequenceRead___index_of;
-  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/standard/collection/abstract_collection.nit:431 */
-  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:432 */
-  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:433 */
-      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)) {
-      } else {
-        REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          REGB1 = TAG_Bool(0);
-          REGB0 = REGB1;
-        } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-          REGB0 = REGB1;
-        }
-      }
-      if (UNTAG_Bool(REGB0)) {
-        REGB0 = CALL_standard___collection___abstract_collection___IndexedIterator___index(fra.me.REG[0])(fra.me.REG[0]);
-        goto label1;
-      }
-      /* ../lib/standard/collection/abstract_collection.nit:434 */
-      CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
-    } else {
-      /* ../lib/standard/collection/abstract_collection.nit:432 */
-      goto label2;
-    }
-  }
-  label2: while(0);
-  /* ../lib/standard/collection/abstract_collection.nit:436 */
-  REGB1 = TAG_Int(1);
-  /* ../lib/standard/kernel.nit:246 */
-  REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-  /* ../lib/standard/collection/abstract_collection.nit:436 */
-  REGB0 = REGB1;
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_standard___collection___abstract_collection___SequenceRead___iterator[] = "abstract_collection::SequenceRead::(abstract_collection::Collection::iterator)";
-val_t standard___collection___abstract_collection___SequenceRead___iterator(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 439;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___SequenceRead___iterator;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:439 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 439);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___Sequence___first__eq[] = "abstract_collection::Sequence::first=";
-void standard___collection___abstract_collection___Sequence___first__eq(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___collection___abstract_collection;
-  fra.me.line = 448;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Sequence___first__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/collection/abstract_collection.nit:451 */
-  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;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Sequence___last__eq[] = "abstract_collection::Sequence::last=";
-void standard___collection___abstract_collection___Sequence___last__eq(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 REGB2;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_standard___collection___abstract_collection;
-  fra.me.line = 453;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Sequence___last__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/collection/abstract_collection.nit:457 */
-  REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
-  /* ../lib/standard/collection/abstract_collection.nit:458 */
-  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:244 */
-  REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ../lib/standard/collection/abstract_collection.nit:458 */
-  if (UNTAG_Bool(REGB1)) {
-    /* ../lib/standard/collection/abstract_collection.nit:459 */
-    REGB1 = TAG_Int(1);
-    /* ../lib/standard/kernel.nit:247 */
-    REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-    /* ../lib/standard/collection/abstract_collection.nit:459 */
-    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:461 */
-    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;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Sequence___add[] = "abstract_collection::Sequence::(abstract_collection::SimpleCollection::add)";
-void standard___collection___abstract_collection___Sequence___add(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___collection___abstract_collection;
-  fra.me.line = 465;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Sequence___add;
-  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/collection/abstract_collection.nit:466 */
-  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;
-}
-static const char LOCATE_standard___collection___abstract_collection___Sequence___push[] = "abstract_collection::Sequence::push";
-void standard___collection___abstract_collection___Sequence___push(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_standard___collection___abstract_collection;
-  fra.me.line = 468;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Sequence___push;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:468 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 468);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Sequence___append[] = "abstract_collection::Sequence::append";
-void standard___collection___abstract_collection___Sequence___append(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___collection___abstract_collection;
-  fra.me.line = 471;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Sequence___append;
-  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;
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_standard___collection___abstract_collection___Sequence___append_1));
-  stack_frame_head = fra.me.prev;
-  return;
-}
-  void OC_standard___collection___abstract_collection___Sequence___append_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;
-    /* ../lib/standard/collection/abstract_collection.nit:472 */
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_standard___collection___abstract_collection;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_standard___collection___abstract_collection___Sequence___append;
-    fra.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;
-    CALL_standard___collection___abstract_collection___Sequence___push(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_standard___collection___abstract_collection___Sequence___pop[] = "abstract_collection::Sequence::pop";
-val_t standard___collection___abstract_collection___Sequence___pop(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 474;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Sequence___pop;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:474 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 474);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___Sequence___unshift[] = "abstract_collection::Sequence::unshift";
-void standard___collection___abstract_collection___Sequence___unshift(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_standard___collection___abstract_collection;
-  fra.me.line = 477;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Sequence___unshift;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:477 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 477);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Sequence___shift[] = "abstract_collection::Sequence::shift";
-val_t standard___collection___abstract_collection___Sequence___shift(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 480;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Sequence___shift;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:480 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 480);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___Sequence_____braeq[] = "abstract_collection::Sequence::[]=";
-void standard___collection___abstract_collection___Sequence_____braeq(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_standard___collection___abstract_collection;
-  fra.me.line = 484;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Sequence_____braeq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:484 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 484);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Sequence___remove_at[] = "abstract_collection::Sequence::remove_at";
-void standard___collection___abstract_collection___Sequence___remove_at(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_standard___collection___abstract_collection;
-  fra.me.line = 487;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Sequence___remove_at;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:487 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 487);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___IndexedIterator___index[] = "abstract_collection::IndexedIterator::index";
-val_t standard___collection___abstract_collection___IndexedIterator___index(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 494;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___IndexedIterator___index;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:494 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 494);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___CoupleMap___couple_at[] = "abstract_collection::CoupleMap::couple_at";
-val_t standard___collection___abstract_collection___CoupleMap___couple_at(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_standard___collection___abstract_collection;
-  fra.me.line = 501;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___CoupleMap___couple_at;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/abstract_collection.nit:501 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___abstract_collection, 501);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_standard___collection___abstract_collection___CoupleMap_____bra[] = "abstract_collection::CoupleMap::(abstract_collection::MapRead::[])";
-val_t standard___collection___abstract_collection___CoupleMap_____bra(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_standard___collection___abstract_collection;
-  fra.me.line = 505;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___CoupleMap_____bra;
-  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/collection/abstract_collection.nit:507 */
-  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:508 */
-  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(0);
-      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)) {
-    /* ../lib/standard/collection/abstract_collection.nit:509 */
-    nit_abort("Aborted", NULL, LOCATE_standard___collection___abstract_collection, 509);
-  } else {
-    /* ../lib/standard/collection/abstract_collection.nit:511 */
-    REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_standard___collection___abstract_collection, 511);
-    }
-    fra.me.REG[1] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[1])(fra.me.REG[1]);
-    goto label1;
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_standard___collection___abstract_collection___CoupleMapIterator___item[] = "abstract_collection::CoupleMapIterator::(abstract_collection::MapIterator::item)";
-val_t standard___collection___abstract_collection___CoupleMapIterator___item(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 521;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___CoupleMapIterator___item;
-  fra.me.has_broke = 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/abstract_collection.nit:521 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_iter", LOCATE_standard___collection___abstract_collection, 521);
-  }
-  fra.me.REG[0] = ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___abstract_collection___Iterator___item(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_standard___collection___abstract_collection, 521);
-  }
-  fra.me.REG[0] = CALL_standard___collection___abstract_collection___Couple___second(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_standard___collection___abstract_collection___CoupleMapIterator___key[] = "abstract_collection::CoupleMapIterator::(abstract_collection::MapIterator::key)";
-val_t standard___collection___abstract_collection___CoupleMapIterator___key(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 525;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___CoupleMapIterator___key;
-  fra.me.has_broke = 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/abstract_collection.nit:525 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_iter", LOCATE_standard___collection___abstract_collection, 525);
-  }
-  fra.me.REG[0] = ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___abstract_collection___Iterator___item(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_standard___collection___abstract_collection, 525);
-  }
-  fra.me.REG[0] = CALL_standard___collection___abstract_collection___Couple___first(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_standard___collection___abstract_collection___CoupleMapIterator___is_ok[] = "abstract_collection::CoupleMapIterator::(abstract_collection::MapIterator::is_ok)";
-val_t standard___collection___abstract_collection___CoupleMapIterator___is_ok(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 527;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___CoupleMapIterator___is_ok;
-  fra.me.has_broke = 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/abstract_collection.nit:527 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_iter", LOCATE_standard___collection___abstract_collection, 527);
-  }
-  fra.me.REG[0] = ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0]);
-  REGB0 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_standard___collection___abstract_collection___CoupleMapIterator___next[] = "abstract_collection::CoupleMapIterator::(abstract_collection::MapIterator::next)";
-void standard___collection___abstract_collection___CoupleMapIterator___next(val_t p0){
-  struct {struct stack_frame_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___collection___abstract_collection;
-  fra.me.line = 529;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___CoupleMapIterator___next;
-  fra.me.has_broke = 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/abstract_collection.nit:531 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_iter", LOCATE_standard___collection___abstract_collection, 531);
-  }
-  fra.me.REG[0] = ATTR_standard___collection___abstract_collection___CoupleMapIterator____iter(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[0])(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___CoupleMapIterator___init[] = "abstract_collection::CoupleMapIterator::init";
-void standard___collection___abstract_collection___CoupleMapIterator___init(val_t p0, val_t p1, int* init_table){
-  int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___abstract_collection___CoupleMapIterator].i;
-  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;
-  fra.me.file = LOCATE_standard___collection___abstract_collection;
-  fra.me.line = 536;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___CoupleMapIterator___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;
-  /* ../lib/standard/collection/abstract_collection.nit:536 */
-  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;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Couple___first[] = "abstract_collection::Couple::first";
-val_t standard___collection___abstract_collection___Couple___first(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 544;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Couple___first;
-  fra.me.has_broke = 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/abstract_collection.nit:544 */
-  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];
-}
-static const char LOCATE_standard___collection___abstract_collection___Couple___first__eq[] = "abstract_collection::Couple::first=";
-void standard___collection___abstract_collection___Couple___first__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___collection___abstract_collection;
-  fra.me.line = 544;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Couple___first__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/collection/abstract_collection.nit:544 */
-  ATTR_standard___collection___abstract_collection___Couple____first(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Couple___second[] = "abstract_collection::Couple::second";
-val_t standard___collection___abstract_collection___Couple___second(val_t p0){
-  struct {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___collection___abstract_collection;
-  fra.me.line = 547;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Couple___second;
-  fra.me.has_broke = 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/abstract_collection.nit:547 */
-  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];
-}
-static const char LOCATE_standard___collection___abstract_collection___Couple___second__eq[] = "abstract_collection::Couple::second=";
-void standard___collection___abstract_collection___Couple___second__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___collection___abstract_collection;
-  fra.me.line = 547;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Couple___second__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/collection/abstract_collection.nit:547 */
-  ATTR_standard___collection___abstract_collection___Couple____second(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_standard___collection___abstract_collection___Couple___init[] = "abstract_collection::Couple::init";
-void standard___collection___abstract_collection___Couple___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___abstract_collection___Couple].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos5]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_standard___collection___abstract_collection;
-  fra.me.line = 550;
-  fra.me.meth = LOCATE_standard___collection___abstract_collection___Couple___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;
-  /* ../lib/standard/collection/abstract_collection.nit:553 */
-  ATTR_standard___collection___abstract_collection___Couple____first(fra.me.REG[0]) = fra.me.REG[1];
-  /* ../lib/standard/collection/abstract_collection.nit:554 */
-  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;
-  return;
-}