+/* method poset#POSetElement#poset= for (self: POSetElement[Object], POSet[Object]) */
+void poset__POSetElement__poset_61d(val* self, val* p0) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+/* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[E] */
+/* <p0:POSet[Object]> isa POSet[E] */
+type_struct = self->type->resolution_table->types[COLOR_poset__POSetposet__POSetElement_FT0];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(cltype >= p0->type->table_size) {
+var = 0;
+} else {
+var = p0->type->type_table[cltype] == idtype;
+}
+if (unlikely(!var)) {
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "../lib/poset.nit", 239);
+show_backtrace(1);
+}
+self->attrs[COLOR_poset__POSetElement___poset].val = p0; /* _poset on <self:POSetElement[Object]> */
+RET_LABEL:;
+}
+/* method poset#POSetElement#poset= for (self: Object, POSet[Object]) */
+void VIRTUAL_poset__POSetElement__poset_61d(val* self, val* p0) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+{ /* Inline poset#POSetElement#poset= (self,p0) on <self:Object(POSetElement[Object])> */
+/* Covariant cast for argument 0 (poset) <p0:POSet[Object]> isa POSet[E] */
+/* <p0:POSet[Object]> isa POSet[E] */
+type_struct = self->type->resolution_table->types[COLOR_poset__POSetposet__POSetElement_FT0];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(cltype >= p0->type->table_size) {
+var = 0;
+} else {
+var = p0->type->type_table[cltype] == idtype;
+}
+if (unlikely(!var)) {
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "../lib/poset.nit", 239);
+show_backtrace(1);
+}
+self->attrs[COLOR_poset__POSetElement___poset].val = p0; /* _poset on <self:Object(POSetElement[Object])> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}