-/* method sorter#AbstractSorter#compare for (self: AbstractSorter[nullable Object], nullable Object, nullable Object): Int */
-long sorter__AbstractSorter__compare(val* self, val* p0, val* p1) {
-long var /* : Int */;
-short int var1 /* : Bool */;
-int cltype;
-int idtype;
-const struct type* type_struct;
-short int is_nullable;
-const char* var_class_name;
-short int var2 /* : Bool */;
-int cltype3;
-int idtype4;
-const struct type* type_struct5;
-short int is_nullable6;
-const char* var_class_name7;
-const char* var_class_name8;
-/* Covariant cast for argument 0 (a) <p0:nullable Object> isa AbstractSorter#0 */
-/* <p0:nullable Object> isa AbstractSorter#0 */
-type_struct = self->type->resolution_table->types[COLOR_sorter__AbstractSorter_FT0];
-cltype = type_struct->color;
-idtype = type_struct->id;
-is_nullable = type_struct->is_nullable;
-if(p0 == NULL) {
-var1 = is_nullable;
-} else {
-if(cltype >= p0->type->table_size) {
-var1 = 0;
-} else {
-var1 = p0->type->type_table[cltype] == idtype;
-}
-}
-if (!var1) {
-var_class_name = p0 == NULL ? "null" : p0->type->name;
-fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name);
-fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/sorter.nit", 23);
-show_backtrace(1);
-}
-/* Covariant cast for argument 1 (b) <p1:nullable Object> isa AbstractSorter#0 */
-/* <p1:nullable Object> isa AbstractSorter#0 */
-type_struct5 = self->type->resolution_table->types[COLOR_sorter__AbstractSorter_FT0];
-cltype3 = type_struct5->color;
-idtype4 = type_struct5->id;
-is_nullable6 = type_struct5->is_nullable;
-if(p1 == NULL) {
-var2 = is_nullable6;
-} else {
-if(cltype3 >= p1->type->table_size) {
-var2 = 0;
-} else {
-var2 = p1->type->type_table[cltype3] == idtype4;
-}
-}
-if (!var2) {
-var_class_name7 = p1 == NULL ? "null" : p1->type->name;
-fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name7);
-fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/sorter.nit", 23);
-show_backtrace(1);
-}
-var_class_name8 = self == NULL ? "null" : self->type->name;
-fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "compare", var_class_name8);
-fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/sorter.nit", 23);
-show_backtrace(1);
-RET_LABEL:;
-return var;
-}
-/* method sorter#AbstractSorter#compare for (self: Object, nullable Object, nullable Object): Int */
-long VIRTUAL_sorter__AbstractSorter__compare(val* self, val* p0, val* p1) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = sorter__AbstractSorter__compare(self, p0, p1);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method sorter#AbstractSorter#sort for (self: AbstractSorter[nullable Object], Array[nullable Object]) */
-void sorter__AbstractSorter__sort(val* self, val* p0) {