-/* 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;
-short int var2 /* : Bool */;
-int cltype3;
-int idtype4;
-const struct type* type_struct5;
-short int is_nullable6;
-/* 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) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 23);
-exit(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) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 23);
-exit(1);
-}
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/collection/sorter.nit", 23);
-exit(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) {