+/* method abstract_collection$Set$union for (self: Set[nullable Object], Set[nullable Object]): Set[nullable Object] */
+val* core___core__Set___union(val* self, val* p0) {
+val* var /* : Set[nullable Object] */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+val* var_other /* var other: Set[nullable Object] */;
+val* var2 /* : Set[nullable Object] */;
+val* var_nhs /* var nhs: Set[nullable Object] */;
+/* Covariant cast for argument 0 (other) <p0:Set[nullable Object]> isa Set[E] */
+/* <p0:Set[nullable Object]> isa Set[E] */
+type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__Set__core__Set___35dE];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
+var1 = 0;
+} else {
+var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
+}
+if (unlikely(!var1)) {
+var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[E]", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 466);
+fatal_exit(1);
+}
+var_other = p0;
+{
+var2 = ((val*(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__abstract_collection__Set__new_set]))(self); /* new_set on <self:Set[nullable Object]>*/
+}
+var_nhs = var2;
+{
+core___core__SimpleCollection___add_all(var_nhs, self); /* Direct call abstract_collection$SimpleCollection$add_all on <var_nhs:Set[nullable Object]>*/
+}
+{
+core___core__SimpleCollection___add_all(var_nhs, var_other); /* Direct call abstract_collection$SimpleCollection$add_all on <var_nhs:Set[nullable Object]>*/
+}
+var = var_nhs;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method abstract_collection$Set$clone for (self: Set[nullable Object]): Set[nullable Object] */
+val* core___core__Set___core__kernel__Cloneable__clone(val* self) {
+val* var /* : Set[nullable Object] */;
+val* var1 /* : Set[nullable Object] */;
+short int var2 /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+{
+var1 = core___core__Set___union(self, self);
+}
+/* <var1:Set[nullable Object]> isa SELF */
+type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Object__SELF];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(cltype >= (((long)var1&3)?type_info[((long)var1&3)]:var1->type)->table_size) {
+var2 = 0;
+} else {
+var2 = (((long)var1&3)?type_info[((long)var1&3)]:var1->type)->type_table[cltype] == idtype;
+}
+if (unlikely(!var2)) {
+var_class_name = var1 == NULL ? "null" : (((long)var1&3)?type_info[((long)var1&3)]:var1->type)->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELF", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 483);
+fatal_exit(1);
+}
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method abstract_collection$Set$new_set for (self: Set[nullable Object]): Set[nullable Object] */
+val* core___core__Set___new_set(val* self) {
+val* var /* : Set[nullable Object] */;
+const char* var_class_name;
+var_class_name = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
+PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "new_set", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 485);
+fatal_exit(1);
+RET_LABEL:;
+return var;
+}
+/* method abstract_collection$MapRead$get_or_null for (self: MapRead[nullable Object, nullable Object], nullable Object): nullable Object */