+short int var /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+short int is_nullable;
+const char* var_class_name;
+{ /* Inline opts#Option#default_value= (self,p0) on <self:Object(Option)> */
+/* Covariant cast for argument 0 (default_value) <p0:nullable Object> isa VALUE */
+/* <p0:nullable Object> isa VALUE */
+type_struct = self->type->resolution_table->types[COLOR_opts__Option_VTVALUE];
+cltype = type_struct->color;
+idtype = type_struct->id;
+is_nullable = type_struct->is_nullable;
+if(p0 == NULL) {
+var = is_nullable;
+} else {
+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`", "VALUE", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 43);
+show_backtrace(1);
+}
+self->attrs[COLOR_opts__Option___default_value].val = p0; /* _default_value on <self:Object(Option)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
+/* method opts#Option#init for (self: Option, String, nullable Object, nullable Array[String]) */
+void opts__Option__init(val* self, val* p0, val* p1, val* p2) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+short int is_nullable;
+const char* var_class_name;
+val* var_help /* var help: String */;
+val* var_default /* var default: nullable Object */;
+val* var_names /* var names: nullable Array[String] */;
+/* Covariant cast for argument 1 (default) <p1:nullable Object> isa VALUE */
+/* <p1:nullable Object> isa VALUE */
+type_struct = self->type->resolution_table->types[COLOR_opts__Option_VTVALUE];
+cltype = type_struct->color;
+idtype = type_struct->id;
+is_nullable = type_struct->is_nullable;
+if(p1 == NULL) {
+var = is_nullable;
+} else {
+if(cltype >= p1->type->table_size) {
+var = 0;
+} else {
+var = p1->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var)) {
+var_class_name = p1 == NULL ? "null" : p1->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 46);
+show_backtrace(1);
+}
+var_help = p0;
+var_default = p1;
+var_names = p2;
+{
+opts__Option__init_opt(self, var_help, var_default, var_names); /* Direct call opts#Option#init_opt on <self:Option>*/
+}
+RET_LABEL:;
+}
+/* method opts#Option#init for (self: Object, String, nullable Object, nullable Array[String]) */
+void VIRTUAL_opts__Option__init(val* self, val* p0, val* p1, val* p2) {
+opts__Option__init(self, p0, p1, p2); /* Direct call opts#Option#init on <self:Object(Option)>*/