Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / core__kernel.sep.1.c
1 #include "core__kernel.sep.0.h"
2 /* method kernel$Object$object_id for (self: Object): Int */
3 long core___core__Object___object_id(val* self) {
4 long var /* : Int */;
5 long var1 /* : Int */;
6 var1 = (long)self;
7 var = var1;
8 goto RET_LABEL;
9 RET_LABEL:;
10 return var;
11 }
12 /* method kernel$Object$is_same_instance for (self: Object, nullable Object): Bool */
13 short int core___core__Object___is_same_instance(val* self, val* p0) {
14 short int var /* : Bool */;
15 short int var1 /* : Bool */;
16 var1 = self == p0 || (p0 != NULL && (!((long)self&3)) && (!((long)p0&3)) && self->class == p0->class && ((self->class->box_kind == 3 && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)p0)->value) || (self->class->box_kind == 5 && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)p0)->value) || (self->class->box_kind == 6 && ((struct instance_core__CString*)self)->value == ((struct instance_core__CString*)p0)->value) || (self->class->box_kind == 7 && ((struct instance_core__Pointer*)self)->value == ((struct instance_core__Pointer*)p0)->value) || (self->class->box_kind == 8 && ((struct instance_core__Int8*)self)->value == ((struct instance_core__Int8*)p0)->value) || (self->class->box_kind == 9 && ((struct instance_core__Int16*)self)->value == ((struct instance_core__Int16*)p0)->value) || (self->class->box_kind == 10 && ((struct instance_core__UInt16*)self)->value == ((struct instance_core__UInt16*)p0)->value) || (self->class->box_kind == 11 && ((struct instance_core__Int32*)self)->value == ((struct instance_core__Int32*)p0)->value) || (self->class->box_kind == 12 && ((struct instance_core__UInt32*)self)->value == ((struct instance_core__UInt32*)p0)->value)));
17 var = var1;
18 goto RET_LABEL;
19 RET_LABEL:;
20 return var;
21 }
22 /* method kernel$Object$== for (self: Object, nullable Object): Bool */
23 short int core___core__Object____61d_61d(val* self, val* p0) {
24 short int var /* : Bool */;
25 val* var_other /* var other: nullable Object */;
26 short int var1 /* : Bool */;
27 short int var3 /* : Bool */;
28 var_other = p0;
29 {
30 { /* Inline kernel$Object$is_same_instance (self,var_other) on <self:Object> */
31 var3 = self == var_other || (var_other != NULL && (!((long)self&3)) && (!((long)var_other&3)) && self->class == var_other->class && ((self->class->box_kind == 3 && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)var_other)->value) || (self->class->box_kind == 5 && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)var_other)->value) || (self->class->box_kind == 6 && ((struct instance_core__CString*)self)->value == ((struct instance_core__CString*)var_other)->value) || (self->class->box_kind == 7 && ((struct instance_core__Pointer*)self)->value == ((struct instance_core__Pointer*)var_other)->value) || (self->class->box_kind == 8 && ((struct instance_core__Int8*)self)->value == ((struct instance_core__Int8*)var_other)->value) || (self->class->box_kind == 9 && ((struct instance_core__Int16*)self)->value == ((struct instance_core__Int16*)var_other)->value) || (self->class->box_kind == 10 && ((struct instance_core__UInt16*)self)->value == ((struct instance_core__UInt16*)var_other)->value) || (self->class->box_kind == 11 && ((struct instance_core__Int32*)self)->value == ((struct instance_core__Int32*)var_other)->value) || (self->class->box_kind == 12 && ((struct instance_core__UInt32*)self)->value == ((struct instance_core__UInt32*)var_other)->value)));
32 var1 = var3;
33 goto RET_LABEL2;
34 RET_LABEL2:(void)0;
35 }
36 }
37 var = var1;
38 goto RET_LABEL;
39 RET_LABEL:;
40 return var;
41 }
42 /* method kernel$Object$!= for (self: Object, nullable Object): Bool */
43 short int core___core__Object____33d_61d(val* self, val* p0) {
44 short int var /* : Bool */;
45 val* var_other /* var other: nullable Object */;
46 short int var1 /* : Bool */;
47 short int var2 /* : Bool */;
48 var_other = p0;
49 {
50 var1 = ((short int(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__kernel__Object___61d_61d]))(self, var_other); /* == on <self:Object>*/
51 }
52 var2 = !var1;
53 var = var2;
54 goto RET_LABEL;
55 RET_LABEL:;
56 return var;
57 }
58 /* method kernel$Object$hash for (self: Object): Int */
59 long core___core__Object___hash(val* self) {
60 long var /* : Int */;
61 long var1 /* : Int */;
62 {
63 var1 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__kernel__Object__object_id]))(self); /* object_id on <self:Object>*/
64 }
65 var = var1;
66 goto RET_LABEL;
67 RET_LABEL:;
68 return var;
69 }
70 /* method kernel$Object$sys for (self: Object): Sys */
71 val* core___core__Object___sys(val* self) {
72 val* var /* : Sys */;
73 val* var1 /* : Sys */;
74 var1 = glob_sys;
75 var = var1;
76 goto RET_LABEL;
77 RET_LABEL:;
78 return var;
79 }
80 /* method kernel$Object$init for (self: Object) */
81 void core___core__Object___init(val* self) {
82 RET_LABEL:;
83 }
84 /* method kernel$Sys$run for (self: Sys) */
85 void core___core__Sys___run(val* self) {
86 {
87 nitc__abstract_compiler___core__Sys___main(self); /* Direct call abstract_compiler$Sys$main on <self:Sys>*/
88 }
89 RET_LABEL:;
90 }
91 /* method kernel$Sys$errno for (self: Sys): Int */
92 long core___core__Sys___errno(val* self) {
93 long var /* : Int */;
94 long var1 /* : Int */;
95 struct nitni_instance* var_for_c_0;
96 var_for_c_0 = nit_alloc(sizeof(struct nitni_instance));
97 var_for_c_0->value = self;
98 var1 = core__kernel___Sys_errno___impl(var_for_c_0);
99 var = var1;
100 goto RET_LABEL;
101 RET_LABEL:;
102 return var;
103 }
104 /* method kernel$Sys$exit for (self: Sys, Int) */
105 void core___core__Sys___exit(val* self, long p0) {
106 exit((int)p0);
107 RET_LABEL:;
108 }
109 /* method kernel$Sys$is_windows for (self: Sys): Bool */
110 short int core___core__Sys___is_windows(val* self) {
111 short int var /* : Bool */;
112 short int var1 /* : Bool */;
113 struct nitni_instance* var_for_c_0;
114 var_for_c_0 = nit_alloc(sizeof(struct nitni_instance));
115 var_for_c_0->value = self;
116 var1 = core__kernel___Sys_is_windows___impl(var_for_c_0);
117 var = var1;
118 goto RET_LABEL;
119 RET_LABEL:;
120 return var;
121 }
122 /* method kernel$Comparable$<= for (self: Comparable, Comparable): Bool */
123 short int core___core__Comparable____60d_61d(val* self, val* p0) {
124 short int var /* : Bool */;
125 short int var1 /* : Bool */;
126 int cltype;
127 int idtype;
128 const struct type* type_struct;
129 const char* var_class_name;
130 val* var_other /* var other: Comparable */;
131 short int var2 /* : Bool */;
132 short int var3 /* : Bool */;
133 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
134 /* <p0:Comparable> isa OTHER */
135 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
136 cltype = type_struct->color;
137 idtype = type_struct->id;
138 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
139 var1 = 0;
140 } else {
141 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
142 }
143 if (unlikely(!var1)) {
144 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
145 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
146 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 322);
147 fatal_exit(1);
148 }
149 var_other = p0;
150 {
151 var2 = ((short int(*)(val* self, val* p0))((((long)var_other&3)?class_info[((long)var_other&3)]:var_other->class)->vft[COLOR_core__kernel__Comparable___60d]))(var_other, self); /* < on <var_other:Comparable>*/
152 }
153 var3 = !var2;
154 var = var3;
155 goto RET_LABEL;
156 RET_LABEL:;
157 return var;
158 }
159 /* method kernel$Comparable$>= for (self: Comparable, Comparable): Bool */
160 short int core___core__Comparable____62d_61d(val* self, val* p0) {
161 short int var /* : Bool */;
162 short int var1 /* : Bool */;
163 int cltype;
164 int idtype;
165 const struct type* type_struct;
166 const char* var_class_name;
167 val* var_other /* var other: Comparable */;
168 short int var2 /* : Bool */;
169 short int var3 /* : Bool */;
170 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
171 /* <p0:Comparable> isa OTHER */
172 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
173 cltype = type_struct->color;
174 idtype = type_struct->id;
175 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
176 var1 = 0;
177 } else {
178 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
179 }
180 if (unlikely(!var1)) {
181 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
182 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
183 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 326);
184 fatal_exit(1);
185 }
186 var_other = p0;
187 {
188 var2 = ((short int(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__kernel__Comparable___60d]))(self, var_other); /* < on <self:Comparable>*/
189 }
190 var3 = !var2;
191 var = var3;
192 goto RET_LABEL;
193 RET_LABEL:;
194 return var;
195 }
196 /* method kernel$Comparable$> for (self: Comparable, Comparable): Bool */
197 short int core___core__Comparable____62d(val* self, val* p0) {
198 short int var /* : Bool */;
199 short int var1 /* : Bool */;
200 int cltype;
201 int idtype;
202 const struct type* type_struct;
203 const char* var_class_name;
204 val* var_other /* var other: Comparable */;
205 short int var2 /* : Bool */;
206 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
207 /* <p0:Comparable> isa OTHER */
208 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
209 cltype = type_struct->color;
210 idtype = type_struct->id;
211 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
212 var1 = 0;
213 } else {
214 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
215 }
216 if (unlikely(!var1)) {
217 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
218 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
219 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 330);
220 fatal_exit(1);
221 }
222 var_other = p0;
223 {
224 var2 = ((short int(*)(val* self, val* p0))((((long)var_other&3)?class_info[((long)var_other&3)]:var_other->class)->vft[COLOR_core__kernel__Comparable___60d]))(var_other, self); /* < on <var_other:Comparable>*/
225 }
226 var = var2;
227 goto RET_LABEL;
228 RET_LABEL:;
229 return var;
230 }
231 /* method kernel$Comparable$<=> for (self: Comparable, Comparable): Int */
232 long core___core__Comparable____60d_61d_62d(val* self, val* p0) {
233 long var /* : Int */;
234 short int var1 /* : Bool */;
235 int cltype;
236 int idtype;
237 const struct type* type_struct;
238 const char* var_class_name;
239 val* var_other /* var other: Comparable */;
240 short int var2 /* : Bool */;
241 long var3 /* : Int */;
242 long var5 /* : Int */;
243 short int var6 /* : Bool */;
244 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
245 /* <p0:Comparable> isa OTHER */
246 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
247 cltype = type_struct->color;
248 idtype = type_struct->id;
249 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
250 var1 = 0;
251 } else {
252 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
253 }
254 if (unlikely(!var1)) {
255 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
256 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
257 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 333);
258 fatal_exit(1);
259 }
260 var_other = p0;
261 {
262 var2 = ((short int(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__kernel__Comparable___60d]))(self, var_other); /* < on <self:Comparable>*/
263 }
264 if (var2){
265 {
266 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
267 var5 = -1l;
268 var3 = var5;
269 goto RET_LABEL4;
270 RET_LABEL4:(void)0;
271 }
272 }
273 var = var3;
274 goto RET_LABEL;
275 } else {
276 {
277 var6 = ((short int(*)(val* self, val* p0))((((long)var_other&3)?class_info[((long)var_other&3)]:var_other->class)->vft[COLOR_core__kernel__Comparable___60d]))(var_other, self); /* < on <var_other:Comparable>*/
278 }
279 if (var6){
280 var = 1l;
281 goto RET_LABEL;
282 } else {
283 var = 0l;
284 goto RET_LABEL;
285 }
286 }
287 RET_LABEL:;
288 return var;
289 }
290 /* method kernel$Comparable$max for (self: Comparable, Comparable): Comparable */
291 val* core___core__Comparable___max(val* self, val* p0) {
292 val* var /* : Comparable */;
293 short int var1 /* : Bool */;
294 int cltype;
295 int idtype;
296 const struct type* type_struct;
297 const char* var_class_name;
298 val* var_other /* var other: Comparable */;
299 short int var2 /* : Bool */;
300 short int var3 /* : Bool */;
301 int cltype4;
302 int idtype5;
303 const struct type* type_struct6;
304 const char* var_class_name7;
305 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
306 /* <p0:Comparable> isa OTHER */
307 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
308 cltype = type_struct->color;
309 idtype = type_struct->id;
310 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
311 var1 = 0;
312 } else {
313 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
314 }
315 if (unlikely(!var1)) {
316 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
317 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
318 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 352);
319 fatal_exit(1);
320 }
321 var_other = p0;
322 {
323 var2 = ((short int(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__kernel__Comparable___60d]))(self, var_other); /* < on <self:Comparable>*/
324 }
325 if (var2){
326 var = var_other;
327 goto RET_LABEL;
328 } else {
329 /* <self:Comparable> isa OTHER */
330 type_struct6 = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
331 cltype4 = type_struct6->color;
332 idtype5 = type_struct6->id;
333 if(cltype4 >= (((long)self&3)?type_info[((long)self&3)]:self->type)->table_size) {
334 var3 = 0;
335 } else {
336 var3 = (((long)self&3)?type_info[((long)self&3)]:self->type)->type_table[cltype4] == idtype5;
337 }
338 if (unlikely(!var3)) {
339 var_class_name7 = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
340 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
341 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 358);
342 fatal_exit(1);
343 }
344 var = self;
345 goto RET_LABEL;
346 }
347 RET_LABEL:;
348 return var;
349 }
350 /* method kernel$Comparable$min for (self: Comparable, Comparable): Comparable */
351 val* core___core__Comparable___min(val* self, val* p0) {
352 val* var /* : Comparable */;
353 short int var1 /* : Bool */;
354 int cltype;
355 int idtype;
356 const struct type* type_struct;
357 const char* var_class_name;
358 val* var_c /* var c: Comparable */;
359 short int var2 /* : Bool */;
360 short int var3 /* : Bool */;
361 int cltype4;
362 int idtype5;
363 const struct type* type_struct6;
364 const char* var_class_name7;
365 /* Covariant cast for argument 0 (c) <p0:Comparable> isa OTHER */
366 /* <p0:Comparable> isa OTHER */
367 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
368 cltype = type_struct->color;
369 idtype = type_struct->id;
370 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
371 var1 = 0;
372 } else {
373 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
374 }
375 if (unlikely(!var1)) {
376 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
377 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
378 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 362);
379 fatal_exit(1);
380 }
381 var_c = p0;
382 {
383 var2 = ((short int(*)(val* self, val* p0))((((long)var_c&3)?class_info[((long)var_c&3)]:var_c->class)->vft[COLOR_core__kernel__Comparable___60d]))(var_c, self); /* < on <var_c:Comparable>*/
384 }
385 if (var2){
386 var = var_c;
387 goto RET_LABEL;
388 } else {
389 /* <self:Comparable> isa OTHER */
390 type_struct6 = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
391 cltype4 = type_struct6->color;
392 idtype5 = type_struct6->id;
393 if(cltype4 >= (((long)self&3)?type_info[((long)self&3)]:self->type)->table_size) {
394 var3 = 0;
395 } else {
396 var3 = (((long)self&3)?type_info[((long)self&3)]:self->type)->type_table[cltype4] == idtype5;
397 }
398 if (unlikely(!var3)) {
399 var_class_name7 = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
400 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
401 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 368);
402 fatal_exit(1);
403 }
404 var = self;
405 goto RET_LABEL;
406 }
407 RET_LABEL:;
408 return var;
409 }
410 /* method kernel$Bool$object_id for (self: Bool): Int */
411 long core___core__Bool___Object__object_id(short int self) {
412 long var /* : Int */;
413 long var1 /* : Int */;
414 var1 = (long)self;
415 var = var1;
416 goto RET_LABEL;
417 RET_LABEL:;
418 return var;
419 }
420 /* method kernel$Bool$object_id for (self: Object): Int */
421 long VIRTUAL_core___core__Bool___Object__object_id(val* self) {
422 long var /* : Int */;
423 long var1 /* : Int */;
424 short int var3 /* : Bool */;
425 long var4 /* : Int */;
426 { /* Inline kernel$Bool$object_id (self) on <self:Object(Bool)> */
427 var3 = (short int)((long)(self)>>2);
428 var4 = (long)var3;
429 var1 = var4;
430 goto RET_LABEL2;
431 RET_LABEL2:(void)0;
432 }
433 var = var1;
434 RET_LABEL:;
435 return var;
436 }
437 /* method kernel$Bool$== for (self: Bool, nullable Object): Bool */
438 short int core___core__Bool___Object___61d_61d(short int self, val* p0) {
439 short int var /* : Bool */;
440 short int var1 /* : Bool */;
441 short int var2 /* : Bool */;
442 if ((p0 != NULL) && (((long)p0&3) == 3)) {
443 var2 = (short int)((long)(p0)>>2);
444 var1 = var2 == self;
445 } else var1 = 0;
446 var = var1;
447 goto RET_LABEL;
448 RET_LABEL:;
449 return var;
450 }
451 /* method kernel$Bool$== for (self: Object, nullable Object): Bool */
452 short int VIRTUAL_core___core__Bool___Object___61d_61d(val* self, val* p0) {
453 short int var /* : Bool */;
454 short int var1 /* : Bool */;
455 short int var3 /* : Bool */;
456 { /* Inline kernel$Bool$== (self,p0) on <self:Object(Bool)> */
457 var3 = self == p0;
458 var1 = var3;
459 goto RET_LABEL2;
460 RET_LABEL2:(void)0;
461 }
462 var = var1;
463 RET_LABEL:;
464 return var;
465 }
466 /* method kernel$Bool$!= for (self: Bool, nullable Object): Bool */
467 short int core___core__Bool___Object___33d_61d(short int self, val* p0) {
468 short int var /* : Bool */;
469 short int var1 /* : Bool */;
470 short int var2 /* : Bool */;
471 short int var3 /* : Bool */;
472 if ((p0 != NULL) && (((long)p0&3) == 3)) {
473 var2 = (short int)((long)(p0)>>2);
474 var1 = var2 == self;
475 } else var1 = 0;
476 var3 = !var1;
477 var = var3;
478 goto RET_LABEL;
479 RET_LABEL:;
480 return var;
481 }
482 /* method kernel$Bool$!= for (self: Object, nullable Object): Bool */
483 short int VIRTUAL_core___core__Bool___Object___33d_61d(val* self, val* p0) {
484 short int var /* : Bool */;
485 short int var1 /* : Bool */;
486 short int var3 /* : Bool */;
487 short int var4 /* : Bool */;
488 { /* Inline kernel$Bool$!= (self,p0) on <self:Object(Bool)> */
489 var3 = self == p0;
490 var4 = !var3;
491 var1 = var4;
492 goto RET_LABEL2;
493 RET_LABEL2:(void)0;
494 }
495 var = var1;
496 RET_LABEL:;
497 return var;
498 }
499 /* method kernel$Bool$hash for (self: Bool): Int */
500 long core___core__Bool___Object__hash(short int self) {
501 long var /* : Int */;
502 long var1 /* : Int */;
503 {
504 var1 = core___core__Bool___to_i(self);
505 }
506 var = var1;
507 goto RET_LABEL;
508 RET_LABEL:;
509 return var;
510 }
511 /* method kernel$Bool$hash for (self: Object): Int */
512 long VIRTUAL_core___core__Bool___Object__hash(val* self) {
513 long var /* : Int */;
514 long var1 /* : Int */;
515 short int var2 /* : Bool */;
516 var2 = (short int)((long)(self)>>2);
517 var1 = core___core__Bool___Object__hash(var2);
518 var = var1;
519 RET_LABEL:;
520 return var;
521 }
522 /* method kernel$Bool$to_i for (self: Bool): Int */
523 long core___core__Bool___to_i(short int self) {
524 long var /* : Int */;
525 if (self){
526 var = 1l;
527 goto RET_LABEL;
528 } else {
529 var = 0l;
530 goto RET_LABEL;
531 }
532 RET_LABEL:;
533 return var;
534 }
535 /* method kernel$Float$object_id for (self: Float): Int */
536 long core___core__Float___Object__object_id(double self) {
537 long var /* : Int */;
538 long var1 /* : Int */;
539 var1 = (double)self;
540 var = var1;
541 goto RET_LABEL;
542 RET_LABEL:;
543 return var;
544 }
545 /* method kernel$Float$object_id for (self: Object): Int */
546 long VIRTUAL_core___core__Float___Object__object_id(val* self) {
547 long var /* : Int */;
548 long var1 /* : Int */;
549 double var3 /* : Float */;
550 long var4 /* : Int */;
551 { /* Inline kernel$Float$object_id (self) on <self:Object(Float)> */
552 var3 = ((struct instance_core__Float*)self)->value; /* autounbox from Object to Float */;
553 var4 = (double)var3;
554 var1 = var4;
555 goto RET_LABEL2;
556 RET_LABEL2:(void)0;
557 }
558 var = var1;
559 RET_LABEL:;
560 return var;
561 }
562 /* method kernel$Float$== for (self: Float, nullable Object): Bool */
563 short int core___core__Float___Object___61d_61d(double self, val* p0) {
564 short int var /* : Bool */;
565 short int var1 /* : Bool */;
566 double var2 /* : Float */;
567 if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__Float)) {
568 var2 = ((struct instance_core__Float*)p0)->value; /* autounbox from nullable Object to Float */;
569 var1 = var2 == self;
570 } else var1 = 0;
571 var = var1;
572 goto RET_LABEL;
573 RET_LABEL:;
574 return var;
575 }
576 /* method kernel$Float$== for (self: Object, nullable Object): Bool */
577 short int VIRTUAL_core___core__Float___Object___61d_61d(val* self, val* p0) {
578 short int var /* : Bool */;
579 short int var1 /* : Bool */;
580 short int var3 /* : Bool */;
581 { /* Inline kernel$Float$== (self,p0) on <self:Object(Float)> */
582 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)p0)->value);
583 var1 = var3;
584 goto RET_LABEL2;
585 RET_LABEL2:(void)0;
586 }
587 var = var1;
588 RET_LABEL:;
589 return var;
590 }
591 /* method kernel$Float$!= for (self: Float, nullable Object): Bool */
592 short int core___core__Float___Object___33d_61d(double self, val* p0) {
593 short int var /* : Bool */;
594 short int var1 /* : Bool */;
595 double var2 /* : Float */;
596 short int var3 /* : Bool */;
597 if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__Float)) {
598 var2 = ((struct instance_core__Float*)p0)->value; /* autounbox from nullable Object to Float */;
599 var1 = var2 == self;
600 } else var1 = 0;
601 var3 = !var1;
602 var = var3;
603 goto RET_LABEL;
604 RET_LABEL:;
605 return var;
606 }
607 /* method kernel$Float$!= for (self: Object, nullable Object): Bool */
608 short int VIRTUAL_core___core__Float___Object___33d_61d(val* self, val* p0) {
609 short int var /* : Bool */;
610 short int var1 /* : Bool */;
611 short int var3 /* : Bool */;
612 short int var4 /* : Bool */;
613 { /* Inline kernel$Float$!= (self,p0) on <self:Object(Float)> */
614 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)p0)->value);
615 var4 = !var3;
616 var1 = var4;
617 goto RET_LABEL2;
618 RET_LABEL2:(void)0;
619 }
620 var = var1;
621 RET_LABEL:;
622 return var;
623 }
624 /* method kernel$Float$<= for (self: Float, Float): Bool */
625 short int core___core__Float___Comparable___60d_61d(double self, double p0) {
626 short int var /* : Bool */;
627 short int var1 /* : Bool */;
628 int cltype;
629 int idtype;
630 const char* var_class_name;
631 short int var2 /* : Bool */;
632 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
633 /* <p0:Float> isa OTHER */
634 var1 = 1; /* easy <p0:Float> isa OTHER*/
635 if (unlikely(!var1)) {
636 var_class_name = type_core__Float.name;
637 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
638 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 529);
639 fatal_exit(1);
640 }
641 var2 = self <= p0;
642 var = var2;
643 goto RET_LABEL;
644 RET_LABEL:;
645 return var;
646 }
647 /* method kernel$Float$<= for (self: Comparable, Comparable): Bool */
648 short int VIRTUAL_core___core__Float___Comparable___60d_61d(val* self, val* p0) {
649 short int var /* : Bool */;
650 short int var1 /* : Bool */;
651 short int var3 /* : Bool */;
652 int cltype;
653 int idtype;
654 const struct type* type_struct;
655 const char* var_class_name;
656 double var4 /* : Float */;
657 double var5 /* : Float */;
658 short int var6 /* : Bool */;
659 { /* Inline kernel$Float$<= (self,p0) on <self:Comparable(Float)> */
660 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
661 /* <p0:Comparable> isa OTHER */
662 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
663 cltype = type_struct->color;
664 idtype = type_struct->id;
665 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
666 var3 = 0;
667 } else {
668 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
669 }
670 if (unlikely(!var3)) {
671 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
672 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
673 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 529);
674 fatal_exit(1);
675 }
676 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
677 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
678 var6 = var4 <= var5;
679 var1 = var6;
680 goto RET_LABEL2;
681 RET_LABEL2:(void)0;
682 }
683 var = var1;
684 RET_LABEL:;
685 return var;
686 }
687 /* method kernel$Float$< for (self: Float, Float): Bool */
688 short int core___core__Float___Comparable___60d(double self, double p0) {
689 short int var /* : Bool */;
690 short int var1 /* : Bool */;
691 int cltype;
692 int idtype;
693 const char* var_class_name;
694 short int var2 /* : Bool */;
695 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
696 /* <p0:Float> isa OTHER */
697 var1 = 1; /* easy <p0:Float> isa OTHER*/
698 if (unlikely(!var1)) {
699 var_class_name = type_core__Float.name;
700 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
701 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 530);
702 fatal_exit(1);
703 }
704 var2 = self < p0;
705 var = var2;
706 goto RET_LABEL;
707 RET_LABEL:;
708 return var;
709 }
710 /* method kernel$Float$< for (self: Comparable, Comparable): Bool */
711 short int VIRTUAL_core___core__Float___Comparable___60d(val* self, val* p0) {
712 short int var /* : Bool */;
713 short int var1 /* : Bool */;
714 short int var3 /* : Bool */;
715 int cltype;
716 int idtype;
717 const struct type* type_struct;
718 const char* var_class_name;
719 double var4 /* : Float */;
720 double var5 /* : Float */;
721 short int var6 /* : Bool */;
722 { /* Inline kernel$Float$< (self,p0) on <self:Comparable(Float)> */
723 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
724 /* <p0:Comparable> isa OTHER */
725 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
726 cltype = type_struct->color;
727 idtype = type_struct->id;
728 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
729 var3 = 0;
730 } else {
731 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
732 }
733 if (unlikely(!var3)) {
734 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
735 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
736 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 530);
737 fatal_exit(1);
738 }
739 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
740 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
741 var6 = var4 < var5;
742 var1 = var6;
743 goto RET_LABEL2;
744 RET_LABEL2:(void)0;
745 }
746 var = var1;
747 RET_LABEL:;
748 return var;
749 }
750 /* method kernel$Float$>= for (self: Float, Float): Bool */
751 short int core___core__Float___Comparable___62d_61d(double self, double p0) {
752 short int var /* : Bool */;
753 short int var1 /* : Bool */;
754 int cltype;
755 int idtype;
756 const char* var_class_name;
757 short int var2 /* : Bool */;
758 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
759 /* <p0:Float> isa OTHER */
760 var1 = 1; /* easy <p0:Float> isa OTHER*/
761 if (unlikely(!var1)) {
762 var_class_name = type_core__Float.name;
763 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
764 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 531);
765 fatal_exit(1);
766 }
767 var2 = self >= p0;
768 var = var2;
769 goto RET_LABEL;
770 RET_LABEL:;
771 return var;
772 }
773 /* method kernel$Float$>= for (self: Comparable, Comparable): Bool */
774 short int VIRTUAL_core___core__Float___Comparable___62d_61d(val* self, val* p0) {
775 short int var /* : Bool */;
776 short int var1 /* : Bool */;
777 short int var3 /* : Bool */;
778 int cltype;
779 int idtype;
780 const struct type* type_struct;
781 const char* var_class_name;
782 double var4 /* : Float */;
783 double var5 /* : Float */;
784 short int var6 /* : Bool */;
785 { /* Inline kernel$Float$>= (self,p0) on <self:Comparable(Float)> */
786 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
787 /* <p0:Comparable> isa OTHER */
788 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
789 cltype = type_struct->color;
790 idtype = type_struct->id;
791 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
792 var3 = 0;
793 } else {
794 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
795 }
796 if (unlikely(!var3)) {
797 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
798 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
799 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 531);
800 fatal_exit(1);
801 }
802 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
803 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
804 var6 = var4 >= var5;
805 var1 = var6;
806 goto RET_LABEL2;
807 RET_LABEL2:(void)0;
808 }
809 var = var1;
810 RET_LABEL:;
811 return var;
812 }
813 /* method kernel$Float$> for (self: Float, Float): Bool */
814 short int core___core__Float___Comparable___62d(double self, double p0) {
815 short int var /* : Bool */;
816 short int var1 /* : Bool */;
817 int cltype;
818 int idtype;
819 const char* var_class_name;
820 short int var2 /* : Bool */;
821 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
822 /* <p0:Float> isa OTHER */
823 var1 = 1; /* easy <p0:Float> isa OTHER*/
824 if (unlikely(!var1)) {
825 var_class_name = type_core__Float.name;
826 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
827 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 532);
828 fatal_exit(1);
829 }
830 var2 = self > p0;
831 var = var2;
832 goto RET_LABEL;
833 RET_LABEL:;
834 return var;
835 }
836 /* method kernel$Float$> for (self: Comparable, Comparable): Bool */
837 short int VIRTUAL_core___core__Float___Comparable___62d(val* self, val* p0) {
838 short int var /* : Bool */;
839 short int var1 /* : Bool */;
840 short int var3 /* : Bool */;
841 int cltype;
842 int idtype;
843 const struct type* type_struct;
844 const char* var_class_name;
845 double var4 /* : Float */;
846 double var5 /* : Float */;
847 short int var6 /* : Bool */;
848 { /* Inline kernel$Float$> (self,p0) on <self:Comparable(Float)> */
849 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
850 /* <p0:Comparable> isa OTHER */
851 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
852 cltype = type_struct->color;
853 idtype = type_struct->id;
854 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
855 var3 = 0;
856 } else {
857 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
858 }
859 if (unlikely(!var3)) {
860 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
861 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
862 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 532);
863 fatal_exit(1);
864 }
865 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
866 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
867 var6 = var4 > var5;
868 var1 = var6;
869 goto RET_LABEL2;
870 RET_LABEL2:(void)0;
871 }
872 var = var1;
873 RET_LABEL:;
874 return var;
875 }
876 /* method kernel$Float$+ for (self: Float, Float): Float */
877 double core___core__Float___Numeric___43d(double self, double p0) {
878 double var /* : Float */;
879 short int var1 /* : Bool */;
880 int cltype;
881 int idtype;
882 const char* var_class_name;
883 double var2 /* : Float */;
884 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
885 /* <p0:Float> isa OTHER */
886 var1 = 1; /* easy <p0:Float> isa OTHER*/
887 if (unlikely(!var1)) {
888 var_class_name = type_core__Float.name;
889 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
890 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 534);
891 fatal_exit(1);
892 }
893 var2 = self + p0;
894 var = var2;
895 goto RET_LABEL;
896 RET_LABEL:;
897 return var;
898 }
899 /* method kernel$Float$+ for (self: Numeric, Numeric): Numeric */
900 val* VIRTUAL_core___core__Float___Numeric___43d(val* self, val* p0) {
901 val* var /* : Numeric */;
902 double var1 /* : Float */;
903 short int var3 /* : Bool */;
904 int cltype;
905 int idtype;
906 const struct type* type_struct;
907 const char* var_class_name;
908 double var4 /* : Float */;
909 double var5 /* : Float */;
910 double var6 /* : Float */;
911 val* var7 /* : Numeric */;
912 { /* Inline kernel$Float$+ (self,p0) on <self:Numeric(Float)> */
913 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
914 /* <p0:Numeric> isa OTHER */
915 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
916 cltype = type_struct->color;
917 idtype = type_struct->id;
918 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
919 var3 = 0;
920 } else {
921 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
922 }
923 if (unlikely(!var3)) {
924 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
925 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
926 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 534);
927 fatal_exit(1);
928 }
929 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
930 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Numeric to Float */;
931 var6 = var4 + var5;
932 var1 = var6;
933 goto RET_LABEL2;
934 RET_LABEL2:(void)0;
935 }
936 var7 = BOX_core__Float(var1); /* autobox from Float to Numeric */
937 var = var7;
938 RET_LABEL:;
939 return var;
940 }
941 /* method kernel$Float$unary - for (self: Float): Float */
942 double core___core__Float___Numeric__unary_32d_45d(double self) {
943 double var /* : Float */;
944 double var1 /* : Float */;
945 var1 = -self;
946 var = var1;
947 goto RET_LABEL;
948 RET_LABEL:;
949 return var;
950 }
951 /* method kernel$Float$unary - for (self: Numeric): Numeric */
952 val* VIRTUAL_core___core__Float___Numeric__unary_32d_45d(val* self) {
953 val* var /* : Numeric */;
954 double var1 /* : Float */;
955 double var3 /* : Float */;
956 double var4 /* : Float */;
957 val* var5 /* : Numeric */;
958 { /* Inline kernel$Float$unary - (self) on <self:Numeric(Float)> */
959 var3 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
960 var4 = -var3;
961 var1 = var4;
962 goto RET_LABEL2;
963 RET_LABEL2:(void)0;
964 }
965 var5 = BOX_core__Float(var1); /* autobox from Float to Numeric */
966 var = var5;
967 RET_LABEL:;
968 return var;
969 }
970 /* method kernel$Float$- for (self: Float, Float): Float */
971 double core___core__Float___Numeric___45d(double self, double p0) {
972 double var /* : Float */;
973 short int var1 /* : Bool */;
974 int cltype;
975 int idtype;
976 const char* var_class_name;
977 double var2 /* : Float */;
978 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
979 /* <p0:Float> isa OTHER */
980 var1 = 1; /* easy <p0:Float> isa OTHER*/
981 if (unlikely(!var1)) {
982 var_class_name = type_core__Float.name;
983 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
984 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 536);
985 fatal_exit(1);
986 }
987 var2 = self - p0;
988 var = var2;
989 goto RET_LABEL;
990 RET_LABEL:;
991 return var;
992 }
993 /* method kernel$Float$- for (self: Numeric, Numeric): Numeric */
994 val* VIRTUAL_core___core__Float___Numeric___45d(val* self, val* p0) {
995 val* var /* : Numeric */;
996 double var1 /* : Float */;
997 short int var3 /* : Bool */;
998 int cltype;
999 int idtype;
1000 const struct type* type_struct;
1001 const char* var_class_name;
1002 double var4 /* : Float */;
1003 double var5 /* : Float */;
1004 double var6 /* : Float */;
1005 val* var7 /* : Numeric */;
1006 { /* Inline kernel$Float$- (self,p0) on <self:Numeric(Float)> */
1007 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
1008 /* <p0:Numeric> isa OTHER */
1009 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1010 cltype = type_struct->color;
1011 idtype = type_struct->id;
1012 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1013 var3 = 0;
1014 } else {
1015 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1016 }
1017 if (unlikely(!var3)) {
1018 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1019 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1020 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 536);
1021 fatal_exit(1);
1022 }
1023 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
1024 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Numeric to Float */;
1025 var6 = var4 - var5;
1026 var1 = var6;
1027 goto RET_LABEL2;
1028 RET_LABEL2:(void)0;
1029 }
1030 var7 = BOX_core__Float(var1); /* autobox from Float to Numeric */
1031 var = var7;
1032 RET_LABEL:;
1033 return var;
1034 }
1035 /* method kernel$Float$* for (self: Float, Float): Float */
1036 double core___core__Float___Numeric___42d(double self, double p0) {
1037 double var /* : Float */;
1038 short int var1 /* : Bool */;
1039 int cltype;
1040 int idtype;
1041 const char* var_class_name;
1042 double var2 /* : Float */;
1043 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
1044 /* <p0:Float> isa OTHER */
1045 var1 = 1; /* easy <p0:Float> isa OTHER*/
1046 if (unlikely(!var1)) {
1047 var_class_name = type_core__Float.name;
1048 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1049 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 537);
1050 fatal_exit(1);
1051 }
1052 var2 = self * p0;
1053 var = var2;
1054 goto RET_LABEL;
1055 RET_LABEL:;
1056 return var;
1057 }
1058 /* method kernel$Float$* for (self: Numeric, Numeric): Numeric */
1059 val* VIRTUAL_core___core__Float___Numeric___42d(val* self, val* p0) {
1060 val* var /* : Numeric */;
1061 double var1 /* : Float */;
1062 short int var3 /* : Bool */;
1063 int cltype;
1064 int idtype;
1065 const struct type* type_struct;
1066 const char* var_class_name;
1067 double var4 /* : Float */;
1068 double var5 /* : Float */;
1069 double var6 /* : Float */;
1070 val* var7 /* : Numeric */;
1071 { /* Inline kernel$Float$* (self,p0) on <self:Numeric(Float)> */
1072 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
1073 /* <p0:Numeric> isa OTHER */
1074 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1075 cltype = type_struct->color;
1076 idtype = type_struct->id;
1077 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1078 var3 = 0;
1079 } else {
1080 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1081 }
1082 if (unlikely(!var3)) {
1083 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1084 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1085 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 537);
1086 fatal_exit(1);
1087 }
1088 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
1089 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Numeric to Float */;
1090 var6 = var4 * var5;
1091 var1 = var6;
1092 goto RET_LABEL2;
1093 RET_LABEL2:(void)0;
1094 }
1095 var7 = BOX_core__Float(var1); /* autobox from Float to Numeric */
1096 var = var7;
1097 RET_LABEL:;
1098 return var;
1099 }
1100 /* method kernel$Float$/ for (self: Float, Float): Float */
1101 double core___core__Float___Numeric___47d(double self, double p0) {
1102 double var /* : Float */;
1103 short int var1 /* : Bool */;
1104 int cltype;
1105 int idtype;
1106 const char* var_class_name;
1107 double var2 /* : Float */;
1108 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
1109 /* <p0:Float> isa OTHER */
1110 var1 = 1; /* easy <p0:Float> isa OTHER*/
1111 if (unlikely(!var1)) {
1112 var_class_name = type_core__Float.name;
1113 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1114 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 538);
1115 fatal_exit(1);
1116 }
1117 var2 = self / p0;
1118 var = var2;
1119 goto RET_LABEL;
1120 RET_LABEL:;
1121 return var;
1122 }
1123 /* method kernel$Float$/ for (self: Numeric, Numeric): Numeric */
1124 val* VIRTUAL_core___core__Float___Numeric___47d(val* self, val* p0) {
1125 val* var /* : Numeric */;
1126 double var1 /* : Float */;
1127 short int var3 /* : Bool */;
1128 int cltype;
1129 int idtype;
1130 const struct type* type_struct;
1131 const char* var_class_name;
1132 double var4 /* : Float */;
1133 double var5 /* : Float */;
1134 double var6 /* : Float */;
1135 val* var7 /* : Numeric */;
1136 { /* Inline kernel$Float$/ (self,p0) on <self:Numeric(Float)> */
1137 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
1138 /* <p0:Numeric> isa OTHER */
1139 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1140 cltype = type_struct->color;
1141 idtype = type_struct->id;
1142 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1143 var3 = 0;
1144 } else {
1145 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1146 }
1147 if (unlikely(!var3)) {
1148 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1149 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1150 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 538);
1151 fatal_exit(1);
1152 }
1153 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
1154 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Numeric to Float */;
1155 var6 = var4 / var5;
1156 var1 = var6;
1157 goto RET_LABEL2;
1158 RET_LABEL2:(void)0;
1159 }
1160 var7 = BOX_core__Float(var1); /* autobox from Float to Numeric */
1161 var = var7;
1162 RET_LABEL:;
1163 return var;
1164 }
1165 /* method kernel$Float$to_i for (self: Float): Int */
1166 long core___core__Float___Numeric__to_i(double self) {
1167 long var /* : Int */;
1168 long var1 /* : Int */;
1169 var1 = (long)self;
1170 var = var1;
1171 goto RET_LABEL;
1172 RET_LABEL:;
1173 return var;
1174 }
1175 /* method kernel$Float$to_i for (self: Numeric): Int */
1176 long VIRTUAL_core___core__Float___Numeric__to_i(val* self) {
1177 long var /* : Int */;
1178 long var1 /* : Int */;
1179 double var3 /* : Float */;
1180 long var4 /* : Int */;
1181 { /* Inline kernel$Float$to_i (self) on <self:Numeric(Float)> */
1182 var3 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
1183 var4 = (long)var3;
1184 var1 = var4;
1185 goto RET_LABEL2;
1186 RET_LABEL2:(void)0;
1187 }
1188 var = var1;
1189 RET_LABEL:;
1190 return var;
1191 }
1192 /* method kernel$Float$to_f for (self: Float): Float */
1193 double core___core__Float___Numeric__to_f(double self) {
1194 double var /* : Float */;
1195 var = self;
1196 goto RET_LABEL;
1197 RET_LABEL:;
1198 return var;
1199 }
1200 /* method kernel$Float$to_f for (self: Numeric): Float */
1201 double VIRTUAL_core___core__Float___Numeric__to_f(val* self) {
1202 double var /* : Float */;
1203 double var1 /* : Float */;
1204 double var2 /* : Float */;
1205 var2 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
1206 var1 = core___core__Float___Numeric__to_f(var2);
1207 var = var1;
1208 RET_LABEL:;
1209 return var;
1210 }
1211 /* method kernel$Float$to_b for (self: Float): Byte */
1212 unsigned char core___core__Float___Numeric__to_b(double self) {
1213 unsigned char var /* : Byte */;
1214 unsigned char var1 /* : Byte */;
1215 var1 = (unsigned char)self;
1216 var = var1;
1217 goto RET_LABEL;
1218 RET_LABEL:;
1219 return var;
1220 }
1221 /* method kernel$Float$to_b for (self: Numeric): Byte */
1222 unsigned char VIRTUAL_core___core__Float___Numeric__to_b(val* self) {
1223 unsigned char var /* : Byte */;
1224 unsigned char var1 /* : Byte */;
1225 double var3 /* : Float */;
1226 unsigned char var4 /* : Byte */;
1227 { /* Inline kernel$Float$to_b (self) on <self:Numeric(Float)> */
1228 var3 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
1229 var4 = (unsigned char)var3;
1230 var1 = var4;
1231 goto RET_LABEL2;
1232 RET_LABEL2:(void)0;
1233 }
1234 var = var1;
1235 RET_LABEL:;
1236 return var;
1237 }
1238 /* method kernel$Float$<=> for (self: Float, Float): Int */
1239 long core___core__Float___Comparable___60d_61d_62d(double self, double p0) {
1240 long var /* : Int */;
1241 short int var1 /* : Bool */;
1242 int cltype;
1243 int idtype;
1244 const char* var_class_name;
1245 double var_other /* var other: Float */;
1246 short int var2 /* : Bool */;
1247 short int var4 /* : Bool */;
1248 int cltype5;
1249 int idtype6;
1250 const char* var_class_name7;
1251 short int var8 /* : Bool */;
1252 long var9 /* : Int */;
1253 long var11 /* : Int */;
1254 short int var12 /* : Bool */;
1255 short int var14 /* : Bool */;
1256 int cltype15;
1257 int idtype16;
1258 const char* var_class_name17;
1259 short int var18 /* : Bool */;
1260 /* Covariant cast for argument 0 (other) <p0:Float> isa OTHER */
1261 /* <p0:Float> isa OTHER */
1262 var1 = 1; /* easy <p0:Float> isa OTHER*/
1263 if (unlikely(!var1)) {
1264 var_class_name = type_core__Float.name;
1265 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1266 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 547);
1267 fatal_exit(1);
1268 }
1269 var_other = p0;
1270 {
1271 { /* Inline kernel$Float$< (self,var_other) on <self:Float> */
1272 /* Covariant cast for argument 0 (i) <var_other:Float> isa OTHER */
1273 /* <var_other:Float> isa OTHER */
1274 var4 = 1; /* easy <var_other:Float> isa OTHER*/
1275 if (unlikely(!var4)) {
1276 var_class_name7 = type_core__Float.name;
1277 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
1278 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 530);
1279 fatal_exit(1);
1280 }
1281 var8 = self < var_other;
1282 var2 = var8;
1283 goto RET_LABEL3;
1284 RET_LABEL3:(void)0;
1285 }
1286 }
1287 if (var2){
1288 {
1289 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
1290 var11 = -1l;
1291 var9 = var11;
1292 goto RET_LABEL10;
1293 RET_LABEL10:(void)0;
1294 }
1295 }
1296 var = var9;
1297 goto RET_LABEL;
1298 } else {
1299 {
1300 { /* Inline kernel$Float$< (var_other,self) on <var_other:Float> */
1301 /* Covariant cast for argument 0 (i) <self:Float> isa OTHER */
1302 /* <self:Float> isa OTHER */
1303 var14 = 1; /* easy <self:Float> isa OTHER*/
1304 if (unlikely(!var14)) {
1305 var_class_name17 = type_core__Float.name;
1306 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
1307 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 530);
1308 fatal_exit(1);
1309 }
1310 var18 = var_other < self;
1311 var12 = var18;
1312 goto RET_LABEL13;
1313 RET_LABEL13:(void)0;
1314 }
1315 }
1316 if (var12){
1317 var = 1l;
1318 goto RET_LABEL;
1319 } else {
1320 var = 0l;
1321 goto RET_LABEL;
1322 }
1323 }
1324 RET_LABEL:;
1325 return var;
1326 }
1327 /* method kernel$Float$<=> for (self: Comparable, Comparable): Int */
1328 long VIRTUAL_core___core__Float___Comparable___60d_61d_62d(val* self, val* p0) {
1329 long var /* : Int */;
1330 long var1 /* : Int */;
1331 double var2 /* : Float */;
1332 double var3 /* : Float */;
1333 var2 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
1334 var3 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
1335 var1 = core___core__Float___Comparable___60d_61d_62d(var2, var3);
1336 var = var1;
1337 RET_LABEL:;
1338 return var;
1339 }
1340 /* method kernel$Float$max for (self: Float, Float): Float */
1341 double core___core__Float___Comparable__max(double self, double p0) {
1342 double var /* : Float */;
1343 short int var1 /* : Bool */;
1344 int cltype;
1345 int idtype;
1346 const char* var_class_name;
1347 double var_other /* var other: Float */;
1348 short int var2 /* : Bool */;
1349 short int var4 /* : Bool */;
1350 int cltype5;
1351 int idtype6;
1352 const char* var_class_name7;
1353 short int var8 /* : Bool */;
1354 /* Covariant cast for argument 0 (other) <p0:Float> isa OTHER */
1355 /* <p0:Float> isa OTHER */
1356 var1 = 1; /* easy <p0:Float> isa OTHER*/
1357 if (unlikely(!var1)) {
1358 var_class_name = type_core__Float.name;
1359 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1360 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 582);
1361 fatal_exit(1);
1362 }
1363 var_other = p0;
1364 {
1365 { /* Inline kernel$Float$< (self,var_other) on <self:Float> */
1366 /* Covariant cast for argument 0 (i) <var_other:Float> isa OTHER */
1367 /* <var_other:Float> isa OTHER */
1368 var4 = 1; /* easy <var_other:Float> isa OTHER*/
1369 if (unlikely(!var4)) {
1370 var_class_name7 = type_core__Float.name;
1371 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
1372 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 530);
1373 fatal_exit(1);
1374 }
1375 var8 = self < var_other;
1376 var2 = var8;
1377 goto RET_LABEL3;
1378 RET_LABEL3:(void)0;
1379 }
1380 }
1381 if (var2){
1382 var = var_other;
1383 goto RET_LABEL;
1384 } else {
1385 var = self;
1386 goto RET_LABEL;
1387 }
1388 RET_LABEL:;
1389 return var;
1390 }
1391 /* method kernel$Float$max for (self: Comparable, Comparable): Comparable */
1392 val* VIRTUAL_core___core__Float___Comparable__max(val* self, val* p0) {
1393 val* var /* : Comparable */;
1394 double var1 /* : Float */;
1395 double var2 /* : Float */;
1396 double var3 /* : Float */;
1397 val* var4 /* : Comparable */;
1398 var2 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
1399 var3 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
1400 var1 = core___core__Float___Comparable__max(var2, var3);
1401 var4 = BOX_core__Float(var1); /* autobox from Float to Comparable */
1402 var = var4;
1403 RET_LABEL:;
1404 return var;
1405 }
1406 /* method kernel$Float$min for (self: Float, Float): Float */
1407 double core___core__Float___Comparable__min(double self, double p0) {
1408 double var /* : Float */;
1409 short int var1 /* : Bool */;
1410 int cltype;
1411 int idtype;
1412 const char* var_class_name;
1413 double var_c /* var c: Float */;
1414 short int var2 /* : Bool */;
1415 short int var4 /* : Bool */;
1416 int cltype5;
1417 int idtype6;
1418 const char* var_class_name7;
1419 short int var8 /* : Bool */;
1420 /* Covariant cast for argument 0 (c) <p0:Float> isa OTHER */
1421 /* <p0:Float> isa OTHER */
1422 var1 = 1; /* easy <p0:Float> isa OTHER*/
1423 if (unlikely(!var1)) {
1424 var_class_name = type_core__Float.name;
1425 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1426 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 591);
1427 fatal_exit(1);
1428 }
1429 var_c = p0;
1430 {
1431 { /* Inline kernel$Float$< (var_c,self) on <var_c:Float> */
1432 /* Covariant cast for argument 0 (i) <self:Float> isa OTHER */
1433 /* <self:Float> isa OTHER */
1434 var4 = 1; /* easy <self:Float> isa OTHER*/
1435 if (unlikely(!var4)) {
1436 var_class_name7 = type_core__Float.name;
1437 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
1438 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 530);
1439 fatal_exit(1);
1440 }
1441 var8 = var_c < self;
1442 var2 = var8;
1443 goto RET_LABEL3;
1444 RET_LABEL3:(void)0;
1445 }
1446 }
1447 if (var2){
1448 var = var_c;
1449 goto RET_LABEL;
1450 } else {
1451 var = self;
1452 goto RET_LABEL;
1453 }
1454 RET_LABEL:;
1455 return var;
1456 }
1457 /* method kernel$Float$min for (self: Comparable, Comparable): Comparable */
1458 val* VIRTUAL_core___core__Float___Comparable__min(val* self, val* p0) {
1459 val* var /* : Comparable */;
1460 double var1 /* : Float */;
1461 double var2 /* : Float */;
1462 double var3 /* : Float */;
1463 val* var4 /* : Comparable */;
1464 var2 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
1465 var3 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
1466 var1 = core___core__Float___Comparable__min(var2, var3);
1467 var4 = BOX_core__Float(var1); /* autobox from Float to Comparable */
1468 var = var4;
1469 RET_LABEL:;
1470 return var;
1471 }
1472 /* method kernel$Byte$successor for (self: Byte, Int): Byte */
1473 unsigned char core___core__Byte___Discrete__successor(unsigned char self, long p0) {
1474 unsigned char var /* : Byte */;
1475 long var_i /* var i: Int */;
1476 unsigned char var1 /* : Byte */;
1477 unsigned char var3 /* : Byte */;
1478 unsigned char var4 /* : Byte */;
1479 short int var6 /* : Bool */;
1480 int cltype;
1481 int idtype;
1482 const char* var_class_name;
1483 unsigned char var7 /* : Byte */;
1484 var_i = p0;
1485 {
1486 { /* Inline kernel$Int$to_b (var_i) on <var_i:Int> */
1487 var3 = (unsigned char)var_i;
1488 var1 = var3;
1489 goto RET_LABEL2;
1490 RET_LABEL2:(void)0;
1491 }
1492 }
1493 {
1494 { /* Inline kernel$Byte$+ (self,var1) on <self:Byte> */
1495 /* Covariant cast for argument 0 (i) <var1:Byte> isa OTHER */
1496 /* <var1:Byte> isa OTHER */
1497 var6 = 1; /* easy <var1:Byte> isa OTHER*/
1498 if (unlikely(!var6)) {
1499 var_class_name = type_core__Byte.name;
1500 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1501 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 622);
1502 fatal_exit(1);
1503 }
1504 var7 = self + var1;
1505 var4 = var7;
1506 goto RET_LABEL5;
1507 RET_LABEL5:(void)0;
1508 }
1509 }
1510 var = var4;
1511 goto RET_LABEL;
1512 RET_LABEL:;
1513 return var;
1514 }
1515 /* method kernel$Byte$successor for (self: Discrete, Int): Discrete */
1516 val* VIRTUAL_core___core__Byte___Discrete__successor(val* self, long p0) {
1517 val* var /* : Discrete */;
1518 unsigned char var1 /* : Byte */;
1519 unsigned char var2 /* : Byte */;
1520 val* var3 /* : Discrete */;
1521 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Discrete to Byte */;
1522 var1 = core___core__Byte___Discrete__successor(var2, p0);
1523 var3 = BOX_core__Byte(var1); /* autobox from Byte to Discrete */
1524 var = var3;
1525 RET_LABEL:;
1526 return var;
1527 }
1528 /* method kernel$Byte$object_id for (self: Byte): Int */
1529 long core___core__Byte___Object__object_id(unsigned char self) {
1530 long var /* : Int */;
1531 long var1 /* : Int */;
1532 var1 = (long)self;
1533 var = var1;
1534 goto RET_LABEL;
1535 RET_LABEL:;
1536 return var;
1537 }
1538 /* method kernel$Byte$object_id for (self: Object): Int */
1539 long VIRTUAL_core___core__Byte___Object__object_id(val* self) {
1540 long var /* : Int */;
1541 long var1 /* : Int */;
1542 unsigned char var3 /* : Byte */;
1543 long var4 /* : Int */;
1544 { /* Inline kernel$Byte$object_id (self) on <self:Object(Byte)> */
1545 var3 = ((struct instance_core__Byte*)self)->value; /* autounbox from Object to Byte */;
1546 var4 = (long)var3;
1547 var1 = var4;
1548 goto RET_LABEL2;
1549 RET_LABEL2:(void)0;
1550 }
1551 var = var1;
1552 RET_LABEL:;
1553 return var;
1554 }
1555 /* method kernel$Byte$hash for (self: Byte): Int */
1556 long core___core__Byte___Object__hash(unsigned char self) {
1557 long var /* : Int */;
1558 long var1 /* : Int */;
1559 long var3 /* : Int */;
1560 {
1561 { /* Inline kernel$Byte$to_i (self) on <self:Byte> */
1562 var3 = (long)self;
1563 var1 = var3;
1564 goto RET_LABEL2;
1565 RET_LABEL2:(void)0;
1566 }
1567 }
1568 var = var1;
1569 goto RET_LABEL;
1570 RET_LABEL:;
1571 return var;
1572 }
1573 /* method kernel$Byte$hash for (self: Object): Int */
1574 long VIRTUAL_core___core__Byte___Object__hash(val* self) {
1575 long var /* : Int */;
1576 long var1 /* : Int */;
1577 unsigned char var2 /* : Byte */;
1578 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Object to Byte */;
1579 var1 = core___core__Byte___Object__hash(var2);
1580 var = var1;
1581 RET_LABEL:;
1582 return var;
1583 }
1584 /* method kernel$Byte$== for (self: Byte, nullable Object): Bool */
1585 short int core___core__Byte___Object___61d_61d(unsigned char self, val* p0) {
1586 short int var /* : Bool */;
1587 short int var1 /* : Bool */;
1588 unsigned char var2 /* : Byte */;
1589 if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__Byte)) {
1590 var2 = ((struct instance_core__Byte*)p0)->value; /* autounbox from nullable Object to Byte */;
1591 var1 = var2 == self;
1592 } else var1 = 0;
1593 var = var1;
1594 goto RET_LABEL;
1595 RET_LABEL:;
1596 return var;
1597 }
1598 /* method kernel$Byte$== for (self: Object, nullable Object): Bool */
1599 short int VIRTUAL_core___core__Byte___Object___61d_61d(val* self, val* p0) {
1600 short int var /* : Bool */;
1601 short int var1 /* : Bool */;
1602 short int var3 /* : Bool */;
1603 { /* Inline kernel$Byte$== (self,p0) on <self:Object(Byte)> */
1604 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)p0)->value);
1605 var1 = var3;
1606 goto RET_LABEL2;
1607 RET_LABEL2:(void)0;
1608 }
1609 var = var1;
1610 RET_LABEL:;
1611 return var;
1612 }
1613 /* method kernel$Byte$!= for (self: Byte, nullable Object): Bool */
1614 short int core___core__Byte___Object___33d_61d(unsigned char self, val* p0) {
1615 short int var /* : Bool */;
1616 short int var1 /* : Bool */;
1617 unsigned char var2 /* : Byte */;
1618 short int var3 /* : Bool */;
1619 if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__Byte)) {
1620 var2 = ((struct instance_core__Byte*)p0)->value; /* autounbox from nullable Object to Byte */;
1621 var1 = var2 == self;
1622 } else var1 = 0;
1623 var3 = !var1;
1624 var = var3;
1625 goto RET_LABEL;
1626 RET_LABEL:;
1627 return var;
1628 }
1629 /* method kernel$Byte$!= for (self: Object, nullable Object): Bool */
1630 short int VIRTUAL_core___core__Byte___Object___33d_61d(val* self, val* p0) {
1631 short int var /* : Bool */;
1632 short int var1 /* : Bool */;
1633 short int var3 /* : Bool */;
1634 short int var4 /* : Bool */;
1635 { /* Inline kernel$Byte$!= (self,p0) on <self:Object(Byte)> */
1636 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)p0)->value);
1637 var4 = !var3;
1638 var1 = var4;
1639 goto RET_LABEL2;
1640 RET_LABEL2:(void)0;
1641 }
1642 var = var1;
1643 RET_LABEL:;
1644 return var;
1645 }
1646 /* method kernel$Byte$<= for (self: Byte, Byte): Bool */
1647 short int core___core__Byte___Comparable___60d_61d(unsigned char self, unsigned char p0) {
1648 short int var /* : Bool */;
1649 short int var1 /* : Bool */;
1650 int cltype;
1651 int idtype;
1652 const char* var_class_name;
1653 short int var2 /* : Bool */;
1654 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1655 /* <p0:Byte> isa OTHER */
1656 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1657 if (unlikely(!var1)) {
1658 var_class_name = type_core__Byte.name;
1659 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1660 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 618);
1661 fatal_exit(1);
1662 }
1663 var2 = self <= p0;
1664 var = var2;
1665 goto RET_LABEL;
1666 RET_LABEL:;
1667 return var;
1668 }
1669 /* method kernel$Byte$<= for (self: Comparable, Comparable): Bool */
1670 short int VIRTUAL_core___core__Byte___Comparable___60d_61d(val* self, val* p0) {
1671 short int var /* : Bool */;
1672 short int var1 /* : Bool */;
1673 short int var3 /* : Bool */;
1674 int cltype;
1675 int idtype;
1676 const struct type* type_struct;
1677 const char* var_class_name;
1678 unsigned char var4 /* : Byte */;
1679 unsigned char var5 /* : Byte */;
1680 short int var6 /* : Bool */;
1681 { /* Inline kernel$Byte$<= (self,p0) on <self:Comparable(Byte)> */
1682 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1683 /* <p0:Comparable> isa OTHER */
1684 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1685 cltype = type_struct->color;
1686 idtype = type_struct->id;
1687 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1688 var3 = 0;
1689 } else {
1690 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1691 }
1692 if (unlikely(!var3)) {
1693 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1694 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1695 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 618);
1696 fatal_exit(1);
1697 }
1698 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
1699 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
1700 var6 = var4 <= var5;
1701 var1 = var6;
1702 goto RET_LABEL2;
1703 RET_LABEL2:(void)0;
1704 }
1705 var = var1;
1706 RET_LABEL:;
1707 return var;
1708 }
1709 /* method kernel$Byte$< for (self: Byte, Byte): Bool */
1710 short int core___core__Byte___Comparable___60d(unsigned char self, unsigned char p0) {
1711 short int var /* : Bool */;
1712 short int var1 /* : Bool */;
1713 int cltype;
1714 int idtype;
1715 const char* var_class_name;
1716 short int var2 /* : Bool */;
1717 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1718 /* <p0:Byte> isa OTHER */
1719 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1720 if (unlikely(!var1)) {
1721 var_class_name = type_core__Byte.name;
1722 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1723 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
1724 fatal_exit(1);
1725 }
1726 var2 = self < p0;
1727 var = var2;
1728 goto RET_LABEL;
1729 RET_LABEL:;
1730 return var;
1731 }
1732 /* method kernel$Byte$< for (self: Comparable, Comparable): Bool */
1733 short int VIRTUAL_core___core__Byte___Comparable___60d(val* self, val* p0) {
1734 short int var /* : Bool */;
1735 short int var1 /* : Bool */;
1736 short int var3 /* : Bool */;
1737 int cltype;
1738 int idtype;
1739 const struct type* type_struct;
1740 const char* var_class_name;
1741 unsigned char var4 /* : Byte */;
1742 unsigned char var5 /* : Byte */;
1743 short int var6 /* : Bool */;
1744 { /* Inline kernel$Byte$< (self,p0) on <self:Comparable(Byte)> */
1745 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1746 /* <p0:Comparable> isa OTHER */
1747 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1748 cltype = type_struct->color;
1749 idtype = type_struct->id;
1750 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1751 var3 = 0;
1752 } else {
1753 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1754 }
1755 if (unlikely(!var3)) {
1756 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1757 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1758 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
1759 fatal_exit(1);
1760 }
1761 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
1762 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
1763 var6 = var4 < var5;
1764 var1 = var6;
1765 goto RET_LABEL2;
1766 RET_LABEL2:(void)0;
1767 }
1768 var = var1;
1769 RET_LABEL:;
1770 return var;
1771 }
1772 /* method kernel$Byte$>= for (self: Byte, Byte): Bool */
1773 short int core___core__Byte___Comparable___62d_61d(unsigned char self, unsigned char p0) {
1774 short int var /* : Bool */;
1775 short int var1 /* : Bool */;
1776 int cltype;
1777 int idtype;
1778 const char* var_class_name;
1779 short int var2 /* : Bool */;
1780 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1781 /* <p0:Byte> isa OTHER */
1782 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1783 if (unlikely(!var1)) {
1784 var_class_name = type_core__Byte.name;
1785 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1786 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 620);
1787 fatal_exit(1);
1788 }
1789 var2 = self >= p0;
1790 var = var2;
1791 goto RET_LABEL;
1792 RET_LABEL:;
1793 return var;
1794 }
1795 /* method kernel$Byte$>= for (self: Comparable, Comparable): Bool */
1796 short int VIRTUAL_core___core__Byte___Comparable___62d_61d(val* self, val* p0) {
1797 short int var /* : Bool */;
1798 short int var1 /* : Bool */;
1799 short int var3 /* : Bool */;
1800 int cltype;
1801 int idtype;
1802 const struct type* type_struct;
1803 const char* var_class_name;
1804 unsigned char var4 /* : Byte */;
1805 unsigned char var5 /* : Byte */;
1806 short int var6 /* : Bool */;
1807 { /* Inline kernel$Byte$>= (self,p0) on <self:Comparable(Byte)> */
1808 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1809 /* <p0:Comparable> isa OTHER */
1810 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1811 cltype = type_struct->color;
1812 idtype = type_struct->id;
1813 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1814 var3 = 0;
1815 } else {
1816 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1817 }
1818 if (unlikely(!var3)) {
1819 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1820 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1821 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 620);
1822 fatal_exit(1);
1823 }
1824 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
1825 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
1826 var6 = var4 >= var5;
1827 var1 = var6;
1828 goto RET_LABEL2;
1829 RET_LABEL2:(void)0;
1830 }
1831 var = var1;
1832 RET_LABEL:;
1833 return var;
1834 }
1835 /* method kernel$Byte$> for (self: Byte, Byte): Bool */
1836 short int core___core__Byte___Comparable___62d(unsigned char self, unsigned char p0) {
1837 short int var /* : Bool */;
1838 short int var1 /* : Bool */;
1839 int cltype;
1840 int idtype;
1841 const char* var_class_name;
1842 short int var2 /* : Bool */;
1843 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1844 /* <p0:Byte> isa OTHER */
1845 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1846 if (unlikely(!var1)) {
1847 var_class_name = type_core__Byte.name;
1848 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1849 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 621);
1850 fatal_exit(1);
1851 }
1852 var2 = self > p0;
1853 var = var2;
1854 goto RET_LABEL;
1855 RET_LABEL:;
1856 return var;
1857 }
1858 /* method kernel$Byte$> for (self: Comparable, Comparable): Bool */
1859 short int VIRTUAL_core___core__Byte___Comparable___62d(val* self, val* p0) {
1860 short int var /* : Bool */;
1861 short int var1 /* : Bool */;
1862 short int var3 /* : Bool */;
1863 int cltype;
1864 int idtype;
1865 const struct type* type_struct;
1866 const char* var_class_name;
1867 unsigned char var4 /* : Byte */;
1868 unsigned char var5 /* : Byte */;
1869 short int var6 /* : Bool */;
1870 { /* Inline kernel$Byte$> (self,p0) on <self:Comparable(Byte)> */
1871 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1872 /* <p0:Comparable> isa OTHER */
1873 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1874 cltype = type_struct->color;
1875 idtype = type_struct->id;
1876 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1877 var3 = 0;
1878 } else {
1879 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1880 }
1881 if (unlikely(!var3)) {
1882 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1883 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1884 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 621);
1885 fatal_exit(1);
1886 }
1887 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
1888 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
1889 var6 = var4 > var5;
1890 var1 = var6;
1891 goto RET_LABEL2;
1892 RET_LABEL2:(void)0;
1893 }
1894 var = var1;
1895 RET_LABEL:;
1896 return var;
1897 }
1898 /* method kernel$Byte$+ for (self: Byte, Byte): Byte */
1899 unsigned char core___core__Byte___Numeric___43d(unsigned char self, unsigned char p0) {
1900 unsigned char var /* : Byte */;
1901 short int var1 /* : Bool */;
1902 int cltype;
1903 int idtype;
1904 const char* var_class_name;
1905 unsigned char var2 /* : Byte */;
1906 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1907 /* <p0:Byte> isa OTHER */
1908 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1909 if (unlikely(!var1)) {
1910 var_class_name = type_core__Byte.name;
1911 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1912 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 622);
1913 fatal_exit(1);
1914 }
1915 var2 = self + p0;
1916 var = var2;
1917 goto RET_LABEL;
1918 RET_LABEL:;
1919 return var;
1920 }
1921 /* method kernel$Byte$+ for (self: Numeric, Numeric): Numeric */
1922 val* VIRTUAL_core___core__Byte___Numeric___43d(val* self, val* p0) {
1923 val* var /* : Numeric */;
1924 unsigned char var1 /* : Byte */;
1925 short int var3 /* : Bool */;
1926 int cltype;
1927 int idtype;
1928 const struct type* type_struct;
1929 const char* var_class_name;
1930 unsigned char var4 /* : Byte */;
1931 unsigned char var5 /* : Byte */;
1932 unsigned char var6 /* : Byte */;
1933 val* var7 /* : Numeric */;
1934 { /* Inline kernel$Byte$+ (self,p0) on <self:Numeric(Byte)> */
1935 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
1936 /* <p0:Numeric> isa OTHER */
1937 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1938 cltype = type_struct->color;
1939 idtype = type_struct->id;
1940 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1941 var3 = 0;
1942 } else {
1943 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1944 }
1945 if (unlikely(!var3)) {
1946 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1947 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1948 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 622);
1949 fatal_exit(1);
1950 }
1951 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
1952 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Numeric to Byte */;
1953 var6 = var4 + var5;
1954 var1 = var6;
1955 goto RET_LABEL2;
1956 RET_LABEL2:(void)0;
1957 }
1958 var7 = BOX_core__Byte(var1); /* autobox from Byte to Numeric */
1959 var = var7;
1960 RET_LABEL:;
1961 return var;
1962 }
1963 /* method kernel$Byte$unary - for (self: Byte): Byte */
1964 unsigned char core___core__Byte___Numeric__unary_32d_45d(unsigned char self) {
1965 unsigned char var /* : Byte */;
1966 unsigned char var1 /* : Byte */;
1967 var1 = -self;
1968 var = var1;
1969 goto RET_LABEL;
1970 RET_LABEL:;
1971 return var;
1972 }
1973 /* method kernel$Byte$unary - for (self: Numeric): Numeric */
1974 val* VIRTUAL_core___core__Byte___Numeric__unary_32d_45d(val* self) {
1975 val* var /* : Numeric */;
1976 unsigned char var1 /* : Byte */;
1977 unsigned char var3 /* : Byte */;
1978 unsigned char var4 /* : Byte */;
1979 val* var5 /* : Numeric */;
1980 { /* Inline kernel$Byte$unary - (self) on <self:Numeric(Byte)> */
1981 var3 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
1982 var4 = -var3;
1983 var1 = var4;
1984 goto RET_LABEL2;
1985 RET_LABEL2:(void)0;
1986 }
1987 var5 = BOX_core__Byte(var1); /* autobox from Byte to Numeric */
1988 var = var5;
1989 RET_LABEL:;
1990 return var;
1991 }
1992 /* method kernel$Byte$- for (self: Byte, Byte): Byte */
1993 unsigned char core___core__Byte___Numeric___45d(unsigned char self, unsigned char p0) {
1994 unsigned char var /* : Byte */;
1995 short int var1 /* : Bool */;
1996 int cltype;
1997 int idtype;
1998 const char* var_class_name;
1999 unsigned char var2 /* : Byte */;
2000 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
2001 /* <p0:Byte> isa OTHER */
2002 var1 = 1; /* easy <p0:Byte> isa OTHER*/
2003 if (unlikely(!var1)) {
2004 var_class_name = type_core__Byte.name;
2005 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2006 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 629);
2007 fatal_exit(1);
2008 }
2009 var2 = self - p0;
2010 var = var2;
2011 goto RET_LABEL;
2012 RET_LABEL:;
2013 return var;
2014 }
2015 /* method kernel$Byte$- for (self: Numeric, Numeric): Numeric */
2016 val* VIRTUAL_core___core__Byte___Numeric___45d(val* self, val* p0) {
2017 val* var /* : Numeric */;
2018 unsigned char var1 /* : Byte */;
2019 short int var3 /* : Bool */;
2020 int cltype;
2021 int idtype;
2022 const struct type* type_struct;
2023 const char* var_class_name;
2024 unsigned char var4 /* : Byte */;
2025 unsigned char var5 /* : Byte */;
2026 unsigned char var6 /* : Byte */;
2027 val* var7 /* : Numeric */;
2028 { /* Inline kernel$Byte$- (self,p0) on <self:Numeric(Byte)> */
2029 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
2030 /* <p0:Numeric> isa OTHER */
2031 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2032 cltype = type_struct->color;
2033 idtype = type_struct->id;
2034 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2035 var3 = 0;
2036 } else {
2037 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2038 }
2039 if (unlikely(!var3)) {
2040 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2041 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2042 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 629);
2043 fatal_exit(1);
2044 }
2045 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
2046 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Numeric to Byte */;
2047 var6 = var4 - var5;
2048 var1 = var6;
2049 goto RET_LABEL2;
2050 RET_LABEL2:(void)0;
2051 }
2052 var7 = BOX_core__Byte(var1); /* autobox from Byte to Numeric */
2053 var = var7;
2054 RET_LABEL:;
2055 return var;
2056 }
2057 /* method kernel$Byte$* for (self: Byte, Byte): Byte */
2058 unsigned char core___core__Byte___Numeric___42d(unsigned char self, unsigned char p0) {
2059 unsigned char var /* : Byte */;
2060 short int var1 /* : Bool */;
2061 int cltype;
2062 int idtype;
2063 const char* var_class_name;
2064 unsigned char var2 /* : Byte */;
2065 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
2066 /* <p0:Byte> isa OTHER */
2067 var1 = 1; /* easy <p0:Byte> isa OTHER*/
2068 if (unlikely(!var1)) {
2069 var_class_name = type_core__Byte.name;
2070 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2071 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 630);
2072 fatal_exit(1);
2073 }
2074 var2 = self * p0;
2075 var = var2;
2076 goto RET_LABEL;
2077 RET_LABEL:;
2078 return var;
2079 }
2080 /* method kernel$Byte$* for (self: Numeric, Numeric): Numeric */
2081 val* VIRTUAL_core___core__Byte___Numeric___42d(val* self, val* p0) {
2082 val* var /* : Numeric */;
2083 unsigned char var1 /* : Byte */;
2084 short int var3 /* : Bool */;
2085 int cltype;
2086 int idtype;
2087 const struct type* type_struct;
2088 const char* var_class_name;
2089 unsigned char var4 /* : Byte */;
2090 unsigned char var5 /* : Byte */;
2091 unsigned char var6 /* : Byte */;
2092 val* var7 /* : Numeric */;
2093 { /* Inline kernel$Byte$* (self,p0) on <self:Numeric(Byte)> */
2094 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
2095 /* <p0:Numeric> isa OTHER */
2096 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2097 cltype = type_struct->color;
2098 idtype = type_struct->id;
2099 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2100 var3 = 0;
2101 } else {
2102 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2103 }
2104 if (unlikely(!var3)) {
2105 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2106 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2107 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 630);
2108 fatal_exit(1);
2109 }
2110 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
2111 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Numeric to Byte */;
2112 var6 = var4 * var5;
2113 var1 = var6;
2114 goto RET_LABEL2;
2115 RET_LABEL2:(void)0;
2116 }
2117 var7 = BOX_core__Byte(var1); /* autobox from Byte to Numeric */
2118 var = var7;
2119 RET_LABEL:;
2120 return var;
2121 }
2122 /* method kernel$Byte$/ for (self: Byte, Byte): Byte */
2123 unsigned char core___core__Byte___Numeric___47d(unsigned char self, unsigned char p0) {
2124 unsigned char var /* : Byte */;
2125 short int var1 /* : Bool */;
2126 int cltype;
2127 int idtype;
2128 const char* var_class_name;
2129 unsigned char var2 /* : Byte */;
2130 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
2131 /* <p0:Byte> isa OTHER */
2132 var1 = 1; /* easy <p0:Byte> isa OTHER*/
2133 if (unlikely(!var1)) {
2134 var_class_name = type_core__Byte.name;
2135 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2136 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 631);
2137 fatal_exit(1);
2138 }
2139 var2 = self / p0;
2140 var = var2;
2141 goto RET_LABEL;
2142 RET_LABEL:;
2143 return var;
2144 }
2145 /* method kernel$Byte$/ for (self: Numeric, Numeric): Numeric */
2146 val* VIRTUAL_core___core__Byte___Numeric___47d(val* self, val* p0) {
2147 val* var /* : Numeric */;
2148 unsigned char var1 /* : Byte */;
2149 short int var3 /* : Bool */;
2150 int cltype;
2151 int idtype;
2152 const struct type* type_struct;
2153 const char* var_class_name;
2154 unsigned char var4 /* : Byte */;
2155 unsigned char var5 /* : Byte */;
2156 unsigned char var6 /* : Byte */;
2157 val* var7 /* : Numeric */;
2158 { /* Inline kernel$Byte$/ (self,p0) on <self:Numeric(Byte)> */
2159 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
2160 /* <p0:Numeric> isa OTHER */
2161 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2162 cltype = type_struct->color;
2163 idtype = type_struct->id;
2164 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2165 var3 = 0;
2166 } else {
2167 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2168 }
2169 if (unlikely(!var3)) {
2170 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2171 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2172 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 631);
2173 fatal_exit(1);
2174 }
2175 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
2176 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Numeric to Byte */;
2177 var6 = var4 / var5;
2178 var1 = var6;
2179 goto RET_LABEL2;
2180 RET_LABEL2:(void)0;
2181 }
2182 var7 = BOX_core__Byte(var1); /* autobox from Byte to Numeric */
2183 var = var7;
2184 RET_LABEL:;
2185 return var;
2186 }
2187 /* method kernel$Byte$>> for (self: Byte, Int): Byte */
2188 unsigned char core___core__Byte____62d_62d(unsigned char self, long p0) {
2189 unsigned char var /* : Byte */;
2190 unsigned char var1 /* : Byte */;
2191 var1 = self >> p0;
2192 var = var1;
2193 goto RET_LABEL;
2194 RET_LABEL:;
2195 return var;
2196 }
2197 /* method kernel$Byte$ascii for (self: Byte): Char */
2198 uint32_t core___core__Byte___ascii(unsigned char self) {
2199 uint32_t var /* : Char */;
2200 uint32_t var1 /* : Char */;
2201 var1 = (uint32_t)self;
2202 var = var1;
2203 goto RET_LABEL;
2204 RET_LABEL:;
2205 return var;
2206 }
2207 /* method kernel$Byte$to_i for (self: Byte): Int */
2208 long core___core__Byte___Numeric__to_i(unsigned char self) {
2209 long var /* : Int */;
2210 long var1 /* : Int */;
2211 var1 = (long)self;
2212 var = var1;
2213 goto RET_LABEL;
2214 RET_LABEL:;
2215 return var;
2216 }
2217 /* method kernel$Byte$to_i for (self: Numeric): Int */
2218 long VIRTUAL_core___core__Byte___Numeric__to_i(val* self) {
2219 long var /* : Int */;
2220 long var1 /* : Int */;
2221 unsigned char var3 /* : Byte */;
2222 long var4 /* : Int */;
2223 { /* Inline kernel$Byte$to_i (self) on <self:Numeric(Byte)> */
2224 var3 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
2225 var4 = (long)var3;
2226 var1 = var4;
2227 goto RET_LABEL2;
2228 RET_LABEL2:(void)0;
2229 }
2230 var = var1;
2231 RET_LABEL:;
2232 return var;
2233 }
2234 /* method kernel$Byte$to_f for (self: Byte): Float */
2235 double core___core__Byte___Numeric__to_f(unsigned char self) {
2236 double var /* : Float */;
2237 double var1 /* : Float */;
2238 var1 = (double)self;
2239 var = var1;
2240 goto RET_LABEL;
2241 RET_LABEL:;
2242 return var;
2243 }
2244 /* method kernel$Byte$to_f for (self: Numeric): Float */
2245 double VIRTUAL_core___core__Byte___Numeric__to_f(val* self) {
2246 double var /* : Float */;
2247 double var1 /* : Float */;
2248 unsigned char var3 /* : Byte */;
2249 double var4 /* : Float */;
2250 { /* Inline kernel$Byte$to_f (self) on <self:Numeric(Byte)> */
2251 var3 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
2252 var4 = (double)var3;
2253 var1 = var4;
2254 goto RET_LABEL2;
2255 RET_LABEL2:(void)0;
2256 }
2257 var = var1;
2258 RET_LABEL:;
2259 return var;
2260 }
2261 /* method kernel$Byte$to_b for (self: Byte): Byte */
2262 unsigned char core___core__Byte___Numeric__to_b(unsigned char self) {
2263 unsigned char var /* : Byte */;
2264 var = self;
2265 goto RET_LABEL;
2266 RET_LABEL:;
2267 return var;
2268 }
2269 /* method kernel$Byte$to_b for (self: Numeric): Byte */
2270 unsigned char VIRTUAL_core___core__Byte___Numeric__to_b(val* self) {
2271 unsigned char var /* : Byte */;
2272 unsigned char var1 /* : Byte */;
2273 unsigned char var2 /* : Byte */;
2274 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
2275 var1 = core___core__Byte___Numeric__to_b(var2);
2276 var = var1;
2277 RET_LABEL:;
2278 return var;
2279 }
2280 /* method kernel$Byte$distance for (self: Byte, Byte): Int */
2281 long core___core__Byte___Discrete__distance(unsigned char self, unsigned char p0) {
2282 long var /* : Int */;
2283 short int var1 /* : Bool */;
2284 int cltype;
2285 int idtype;
2286 const char* var_class_name;
2287 unsigned char var_i /* var i: Byte */;
2288 unsigned char var2 /* : Byte */;
2289 short int var4 /* : Bool */;
2290 int cltype5;
2291 int idtype6;
2292 const char* var_class_name7;
2293 unsigned char var8 /* : Byte */;
2294 long var9 /* : Int */;
2295 long var11 /* : Int */;
2296 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
2297 /* <p0:Byte> isa OTHER */
2298 var1 = 1; /* easy <p0:Byte> isa OTHER*/
2299 if (unlikely(!var1)) {
2300 var_class_name = type_core__Byte.name;
2301 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2302 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 663);
2303 fatal_exit(1);
2304 }
2305 var_i = p0;
2306 {
2307 { /* Inline kernel$Byte$- (self,var_i) on <self:Byte> */
2308 /* Covariant cast for argument 0 (i) <var_i:Byte> isa OTHER */
2309 /* <var_i:Byte> isa OTHER */
2310 var4 = 1; /* easy <var_i:Byte> isa OTHER*/
2311 if (unlikely(!var4)) {
2312 var_class_name7 = type_core__Byte.name;
2313 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
2314 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 629);
2315 fatal_exit(1);
2316 }
2317 var8 = self - var_i;
2318 var2 = var8;
2319 goto RET_LABEL3;
2320 RET_LABEL3:(void)0;
2321 }
2322 }
2323 {
2324 { /* Inline kernel$Byte$to_i (var2) on <var2:Byte> */
2325 var11 = (long)var2;
2326 var9 = var11;
2327 goto RET_LABEL10;
2328 RET_LABEL10:(void)0;
2329 }
2330 }
2331 var = var9;
2332 goto RET_LABEL;
2333 RET_LABEL:;
2334 return var;
2335 }
2336 /* method kernel$Byte$distance for (self: Discrete, Discrete): Int */
2337 long VIRTUAL_core___core__Byte___Discrete__distance(val* self, val* p0) {
2338 long var /* : Int */;
2339 long var1 /* : Int */;
2340 unsigned char var2 /* : Byte */;
2341 unsigned char var3 /* : Byte */;
2342 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Discrete to Byte */;
2343 var3 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Discrete to Byte */;
2344 var1 = core___core__Byte___Discrete__distance(var2, var3);
2345 var = var1;
2346 RET_LABEL:;
2347 return var;
2348 }
2349 /* method kernel$Byte$<=> for (self: Byte, Byte): Int */
2350 long core___core__Byte___Comparable___60d_61d_62d(unsigned char self, unsigned char p0) {
2351 long var /* : Int */;
2352 short int var1 /* : Bool */;
2353 int cltype;
2354 int idtype;
2355 const char* var_class_name;
2356 unsigned char var_other /* var other: Byte */;
2357 short int var2 /* : Bool */;
2358 short int var4 /* : Bool */;
2359 int cltype5;
2360 int idtype6;
2361 const char* var_class_name7;
2362 short int var8 /* : Bool */;
2363 long var9 /* : Int */;
2364 long var11 /* : Int */;
2365 short int var12 /* : Bool */;
2366 short int var14 /* : Bool */;
2367 int cltype15;
2368 int idtype16;
2369 const char* var_class_name17;
2370 short int var18 /* : Bool */;
2371 /* Covariant cast for argument 0 (other) <p0:Byte> isa OTHER */
2372 /* <p0:Byte> isa OTHER */
2373 var1 = 1; /* easy <p0:Byte> isa OTHER*/
2374 if (unlikely(!var1)) {
2375 var_class_name = type_core__Byte.name;
2376 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2377 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 665);
2378 fatal_exit(1);
2379 }
2380 var_other = p0;
2381 {
2382 { /* Inline kernel$Byte$< (self,var_other) on <self:Byte> */
2383 /* Covariant cast for argument 0 (i) <var_other:Byte> isa OTHER */
2384 /* <var_other:Byte> isa OTHER */
2385 var4 = 1; /* easy <var_other:Byte> isa OTHER*/
2386 if (unlikely(!var4)) {
2387 var_class_name7 = type_core__Byte.name;
2388 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
2389 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
2390 fatal_exit(1);
2391 }
2392 var8 = self < var_other;
2393 var2 = var8;
2394 goto RET_LABEL3;
2395 RET_LABEL3:(void)0;
2396 }
2397 }
2398 if (var2){
2399 {
2400 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
2401 var11 = -1l;
2402 var9 = var11;
2403 goto RET_LABEL10;
2404 RET_LABEL10:(void)0;
2405 }
2406 }
2407 var = var9;
2408 goto RET_LABEL;
2409 } else {
2410 {
2411 { /* Inline kernel$Byte$< (var_other,self) on <var_other:Byte> */
2412 /* Covariant cast for argument 0 (i) <self:Byte> isa OTHER */
2413 /* <self:Byte> isa OTHER */
2414 var14 = 1; /* easy <self:Byte> isa OTHER*/
2415 if (unlikely(!var14)) {
2416 var_class_name17 = type_core__Byte.name;
2417 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
2418 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
2419 fatal_exit(1);
2420 }
2421 var18 = var_other < self;
2422 var12 = var18;
2423 goto RET_LABEL13;
2424 RET_LABEL13:(void)0;
2425 }
2426 }
2427 if (var12){
2428 var = 1l;
2429 goto RET_LABEL;
2430 } else {
2431 var = 0l;
2432 goto RET_LABEL;
2433 }
2434 }
2435 RET_LABEL:;
2436 return var;
2437 }
2438 /* method kernel$Byte$<=> for (self: Comparable, Comparable): Int */
2439 long VIRTUAL_core___core__Byte___Comparable___60d_61d_62d(val* self, val* p0) {
2440 long var /* : Int */;
2441 long var1 /* : Int */;
2442 unsigned char var2 /* : Byte */;
2443 unsigned char var3 /* : Byte */;
2444 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
2445 var3 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
2446 var1 = core___core__Byte___Comparable___60d_61d_62d(var2, var3);
2447 var = var1;
2448 RET_LABEL:;
2449 return var;
2450 }
2451 /* method kernel$Byte$max for (self: Byte, Byte): Byte */
2452 unsigned char core___core__Byte___Comparable__max(unsigned char self, unsigned char p0) {
2453 unsigned char var /* : Byte */;
2454 short int var1 /* : Bool */;
2455 int cltype;
2456 int idtype;
2457 const char* var_class_name;
2458 unsigned char var_other /* var other: Byte */;
2459 short int var2 /* : Bool */;
2460 short int var4 /* : Bool */;
2461 int cltype5;
2462 int idtype6;
2463 const char* var_class_name7;
2464 short int var8 /* : Bool */;
2465 /* Covariant cast for argument 0 (other) <p0:Byte> isa OTHER */
2466 /* <p0:Byte> isa OTHER */
2467 var1 = 1; /* easy <p0:Byte> isa OTHER*/
2468 if (unlikely(!var1)) {
2469 var_class_name = type_core__Byte.name;
2470 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2471 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 685);
2472 fatal_exit(1);
2473 }
2474 var_other = p0;
2475 {
2476 { /* Inline kernel$Byte$< (self,var_other) on <self:Byte> */
2477 /* Covariant cast for argument 0 (i) <var_other:Byte> isa OTHER */
2478 /* <var_other:Byte> isa OTHER */
2479 var4 = 1; /* easy <var_other:Byte> isa OTHER*/
2480 if (unlikely(!var4)) {
2481 var_class_name7 = type_core__Byte.name;
2482 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
2483 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
2484 fatal_exit(1);
2485 }
2486 var8 = self < var_other;
2487 var2 = var8;
2488 goto RET_LABEL3;
2489 RET_LABEL3:(void)0;
2490 }
2491 }
2492 if (var2){
2493 var = var_other;
2494 goto RET_LABEL;
2495 } else {
2496 var = self;
2497 goto RET_LABEL;
2498 }
2499 RET_LABEL:;
2500 return var;
2501 }
2502 /* method kernel$Byte$max for (self: Comparable, Comparable): Comparable */
2503 val* VIRTUAL_core___core__Byte___Comparable__max(val* self, val* p0) {
2504 val* var /* : Comparable */;
2505 unsigned char var1 /* : Byte */;
2506 unsigned char var2 /* : Byte */;
2507 unsigned char var3 /* : Byte */;
2508 val* var4 /* : Comparable */;
2509 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
2510 var3 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
2511 var1 = core___core__Byte___Comparable__max(var2, var3);
2512 var4 = BOX_core__Byte(var1); /* autobox from Byte to Comparable */
2513 var = var4;
2514 RET_LABEL:;
2515 return var;
2516 }
2517 /* method kernel$Byte$min for (self: Byte, Byte): Byte */
2518 unsigned char core___core__Byte___Comparable__min(unsigned char self, unsigned char p0) {
2519 unsigned char var /* : Byte */;
2520 short int var1 /* : Bool */;
2521 int cltype;
2522 int idtype;
2523 const char* var_class_name;
2524 unsigned char var_c /* var c: Byte */;
2525 short int var2 /* : Bool */;
2526 short int var4 /* : Bool */;
2527 int cltype5;
2528 int idtype6;
2529 const char* var_class_name7;
2530 short int var8 /* : Bool */;
2531 /* Covariant cast for argument 0 (c) <p0:Byte> isa OTHER */
2532 /* <p0:Byte> isa OTHER */
2533 var1 = 1; /* easy <p0:Byte> isa OTHER*/
2534 if (unlikely(!var1)) {
2535 var_class_name = type_core__Byte.name;
2536 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2537 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 694);
2538 fatal_exit(1);
2539 }
2540 var_c = p0;
2541 {
2542 { /* Inline kernel$Byte$< (var_c,self) on <var_c:Byte> */
2543 /* Covariant cast for argument 0 (i) <self:Byte> isa OTHER */
2544 /* <self:Byte> isa OTHER */
2545 var4 = 1; /* easy <self:Byte> isa OTHER*/
2546 if (unlikely(!var4)) {
2547 var_class_name7 = type_core__Byte.name;
2548 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
2549 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
2550 fatal_exit(1);
2551 }
2552 var8 = var_c < self;
2553 var2 = var8;
2554 goto RET_LABEL3;
2555 RET_LABEL3:(void)0;
2556 }
2557 }
2558 if (var2){
2559 var = var_c;
2560 goto RET_LABEL;
2561 } else {
2562 var = self;
2563 goto RET_LABEL;
2564 }
2565 RET_LABEL:;
2566 return var;
2567 }
2568 /* method kernel$Byte$min for (self: Comparable, Comparable): Comparable */
2569 val* VIRTUAL_core___core__Byte___Comparable__min(val* self, val* p0) {
2570 val* var /* : Comparable */;
2571 unsigned char var1 /* : Byte */;
2572 unsigned char var2 /* : Byte */;
2573 unsigned char var3 /* : Byte */;
2574 val* var4 /* : Comparable */;
2575 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
2576 var3 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
2577 var1 = core___core__Byte___Comparable__min(var2, var3);
2578 var4 = BOX_core__Byte(var1); /* autobox from Byte to Comparable */
2579 var = var4;
2580 RET_LABEL:;
2581 return var;
2582 }
2583 /* method kernel$Int$successor for (self: Int, Int): Int */
2584 long core___core__Int___Discrete__successor(long self, long p0) {
2585 long var /* : Int */;
2586 long var_i /* var i: Int */;
2587 long var1 /* : Int */;
2588 short int var3 /* : Bool */;
2589 int cltype;
2590 int idtype;
2591 const char* var_class_name;
2592 long var4 /* : Int */;
2593 var_i = p0;
2594 {
2595 { /* Inline kernel$Int$+ (self,var_i) on <self:Int> */
2596 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
2597 /* <var_i:Int> isa OTHER */
2598 var3 = 1; /* easy <var_i:Int> isa OTHER*/
2599 if (unlikely(!var3)) {
2600 var_class_name = type_core__Int.name;
2601 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2602 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2603 fatal_exit(1);
2604 }
2605 var4 = self + var_i;
2606 var1 = var4;
2607 goto RET_LABEL2;
2608 RET_LABEL2:(void)0;
2609 }
2610 }
2611 var = var1;
2612 goto RET_LABEL;
2613 RET_LABEL:;
2614 return var;
2615 }
2616 /* method kernel$Int$successor for (self: Discrete, Int): Discrete */
2617 val* VIRTUAL_core___core__Int___Discrete__successor(val* self, long p0) {
2618 val* var /* : Discrete */;
2619 long var1 /* : Int */;
2620 long var2 /* : Int */;
2621 val* var3 /* : Discrete */;
2622 var2 = (long)(self)>>2;
2623 var1 = core___core__Int___Discrete__successor(var2, p0);
2624 var3 = (val*)(var1<<2|1);
2625 var = var3;
2626 RET_LABEL:;
2627 return var;
2628 }
2629 /* method kernel$Int$object_id for (self: Int): Int */
2630 long core___core__Int___Object__object_id(long self) {
2631 long var /* : Int */;
2632 var = self;
2633 goto RET_LABEL;
2634 RET_LABEL:;
2635 return var;
2636 }
2637 /* method kernel$Int$object_id for (self: Object): Int */
2638 long VIRTUAL_core___core__Int___Object__object_id(val* self) {
2639 long var /* : Int */;
2640 long var1 /* : Int */;
2641 long var3 /* : Int */;
2642 { /* Inline kernel$Int$object_id (self) on <self:Object(Int)> */
2643 var3 = (long)(self)>>2;
2644 var1 = var3;
2645 goto RET_LABEL2;
2646 RET_LABEL2:(void)0;
2647 }
2648 var = var1;
2649 RET_LABEL:;
2650 return var;
2651 }
2652 /* method kernel$Int$hash for (self: Int): Int */
2653 long core___core__Int___Object__hash(long self) {
2654 long var /* : Int */;
2655 var = self;
2656 goto RET_LABEL;
2657 RET_LABEL:;
2658 return var;
2659 }
2660 /* method kernel$Int$hash for (self: Object): Int */
2661 long VIRTUAL_core___core__Int___Object__hash(val* self) {
2662 long var /* : Int */;
2663 long var1 /* : Int */;
2664 long var2 /* : Int */;
2665 var2 = (long)(self)>>2;
2666 var1 = core___core__Int___Object__hash(var2);
2667 var = var1;
2668 RET_LABEL:;
2669 return var;
2670 }
2671 /* method kernel$Int$== for (self: Int, nullable Object): Bool */
2672 short int core___core__Int___Object___61d_61d(long self, val* p0) {
2673 short int var /* : Bool */;
2674 short int var1 /* : Bool */;
2675 long var2 /* : Int */;
2676 if ((p0 != NULL) && (((long)p0&3) == 1)) {
2677 var2 = (long)(p0)>>2;
2678 var1 = var2 == self;
2679 } else var1 = 0;
2680 var = var1;
2681 goto RET_LABEL;
2682 RET_LABEL:;
2683 return var;
2684 }
2685 /* method kernel$Int$== for (self: Object, nullable Object): Bool */
2686 short int VIRTUAL_core___core__Int___Object___61d_61d(val* self, val* p0) {
2687 short int var /* : Bool */;
2688 short int var1 /* : Bool */;
2689 short int var3 /* : Bool */;
2690 { /* Inline kernel$Int$== (self,p0) on <self:Object(Int)> */
2691 var3 = self == p0;
2692 var1 = var3;
2693 goto RET_LABEL2;
2694 RET_LABEL2:(void)0;
2695 }
2696 var = var1;
2697 RET_LABEL:;
2698 return var;
2699 }
2700 /* method kernel$Int$!= for (self: Int, nullable Object): Bool */
2701 short int core___core__Int___Object___33d_61d(long self, val* p0) {
2702 short int var /* : Bool */;
2703 short int var1 /* : Bool */;
2704 long var2 /* : Int */;
2705 short int var3 /* : Bool */;
2706 if ((p0 != NULL) && (((long)p0&3) == 1)) {
2707 var2 = (long)(p0)>>2;
2708 var1 = var2 == self;
2709 } else var1 = 0;
2710 var3 = !var1;
2711 var = var3;
2712 goto RET_LABEL;
2713 RET_LABEL:;
2714 return var;
2715 }
2716 /* method kernel$Int$!= for (self: Object, nullable Object): Bool */
2717 short int VIRTUAL_core___core__Int___Object___33d_61d(val* self, val* p0) {
2718 short int var /* : Bool */;
2719 short int var1 /* : Bool */;
2720 short int var3 /* : Bool */;
2721 short int var4 /* : Bool */;
2722 { /* Inline kernel$Int$!= (self,p0) on <self:Object(Int)> */
2723 var3 = self == p0;
2724 var4 = !var3;
2725 var1 = var4;
2726 goto RET_LABEL2;
2727 RET_LABEL2:(void)0;
2728 }
2729 var = var1;
2730 RET_LABEL:;
2731 return var;
2732 }
2733 /* method kernel$Int$<= for (self: Int, Int): Bool */
2734 short int core___core__Int___Comparable___60d_61d(long self, long p0) {
2735 short int var /* : Bool */;
2736 short int var1 /* : Bool */;
2737 int cltype;
2738 int idtype;
2739 const char* var_class_name;
2740 short int var2 /* : Bool */;
2741 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2742 /* <p0:Int> isa OTHER */
2743 var1 = 1; /* easy <p0:Int> isa OTHER*/
2744 if (unlikely(!var1)) {
2745 var_class_name = type_core__Int.name;
2746 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2747 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
2748 fatal_exit(1);
2749 }
2750 var2 = self <= p0;
2751 var = var2;
2752 goto RET_LABEL;
2753 RET_LABEL:;
2754 return var;
2755 }
2756 /* method kernel$Int$<= for (self: Comparable, Comparable): Bool */
2757 short int VIRTUAL_core___core__Int___Comparable___60d_61d(val* self, val* p0) {
2758 short int var /* : Bool */;
2759 short int var1 /* : Bool */;
2760 short int var3 /* : Bool */;
2761 int cltype;
2762 int idtype;
2763 const struct type* type_struct;
2764 const char* var_class_name;
2765 long var4 /* : Int */;
2766 long var5 /* : Int */;
2767 short int var6 /* : Bool */;
2768 { /* Inline kernel$Int$<= (self,p0) on <self:Comparable(Int)> */
2769 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
2770 /* <p0:Comparable> isa OTHER */
2771 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2772 cltype = type_struct->color;
2773 idtype = type_struct->id;
2774 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2775 var3 = 0;
2776 } else {
2777 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2778 }
2779 if (unlikely(!var3)) {
2780 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2781 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2782 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
2783 fatal_exit(1);
2784 }
2785 var4 = (long)(self)>>2;
2786 var5 = (long)(p0)>>2;
2787 var6 = var4 <= var5;
2788 var1 = var6;
2789 goto RET_LABEL2;
2790 RET_LABEL2:(void)0;
2791 }
2792 var = var1;
2793 RET_LABEL:;
2794 return var;
2795 }
2796 /* method kernel$Int$< for (self: Int, Int): Bool */
2797 short int core___core__Int___Comparable___60d(long self, long p0) {
2798 short int var /* : Bool */;
2799 short int var1 /* : Bool */;
2800 int cltype;
2801 int idtype;
2802 const char* var_class_name;
2803 short int var2 /* : Bool */;
2804 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2805 /* <p0:Int> isa OTHER */
2806 var1 = 1; /* easy <p0:Int> isa OTHER*/
2807 if (unlikely(!var1)) {
2808 var_class_name = type_core__Int.name;
2809 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2810 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
2811 fatal_exit(1);
2812 }
2813 var2 = self < p0;
2814 var = var2;
2815 goto RET_LABEL;
2816 RET_LABEL:;
2817 return var;
2818 }
2819 /* method kernel$Int$< for (self: Comparable, Comparable): Bool */
2820 short int VIRTUAL_core___core__Int___Comparable___60d(val* self, val* p0) {
2821 short int var /* : Bool */;
2822 short int var1 /* : Bool */;
2823 short int var3 /* : Bool */;
2824 int cltype;
2825 int idtype;
2826 const struct type* type_struct;
2827 const char* var_class_name;
2828 long var4 /* : Int */;
2829 long var5 /* : Int */;
2830 short int var6 /* : Bool */;
2831 { /* Inline kernel$Int$< (self,p0) on <self:Comparable(Int)> */
2832 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
2833 /* <p0:Comparable> isa OTHER */
2834 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2835 cltype = type_struct->color;
2836 idtype = type_struct->id;
2837 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2838 var3 = 0;
2839 } else {
2840 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2841 }
2842 if (unlikely(!var3)) {
2843 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2844 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2845 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
2846 fatal_exit(1);
2847 }
2848 var4 = (long)(self)>>2;
2849 var5 = (long)(p0)>>2;
2850 var6 = var4 < var5;
2851 var1 = var6;
2852 goto RET_LABEL2;
2853 RET_LABEL2:(void)0;
2854 }
2855 var = var1;
2856 RET_LABEL:;
2857 return var;
2858 }
2859 /* method kernel$Int$>= for (self: Int, Int): Bool */
2860 short int core___core__Int___Comparable___62d_61d(long self, long p0) {
2861 short int var /* : Bool */;
2862 short int var1 /* : Bool */;
2863 int cltype;
2864 int idtype;
2865 const char* var_class_name;
2866 short int var2 /* : Bool */;
2867 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2868 /* <p0:Int> isa OTHER */
2869 var1 = 1; /* easy <p0:Int> isa OTHER*/
2870 if (unlikely(!var1)) {
2871 var_class_name = type_core__Int.name;
2872 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2873 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
2874 fatal_exit(1);
2875 }
2876 var2 = self >= p0;
2877 var = var2;
2878 goto RET_LABEL;
2879 RET_LABEL:;
2880 return var;
2881 }
2882 /* method kernel$Int$>= for (self: Comparable, Comparable): Bool */
2883 short int VIRTUAL_core___core__Int___Comparable___62d_61d(val* self, val* p0) {
2884 short int var /* : Bool */;
2885 short int var1 /* : Bool */;
2886 short int var3 /* : Bool */;
2887 int cltype;
2888 int idtype;
2889 const struct type* type_struct;
2890 const char* var_class_name;
2891 long var4 /* : Int */;
2892 long var5 /* : Int */;
2893 short int var6 /* : Bool */;
2894 { /* Inline kernel$Int$>= (self,p0) on <self:Comparable(Int)> */
2895 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
2896 /* <p0:Comparable> isa OTHER */
2897 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2898 cltype = type_struct->color;
2899 idtype = type_struct->id;
2900 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2901 var3 = 0;
2902 } else {
2903 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2904 }
2905 if (unlikely(!var3)) {
2906 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2907 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2908 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
2909 fatal_exit(1);
2910 }
2911 var4 = (long)(self)>>2;
2912 var5 = (long)(p0)>>2;
2913 var6 = var4 >= var5;
2914 var1 = var6;
2915 goto RET_LABEL2;
2916 RET_LABEL2:(void)0;
2917 }
2918 var = var1;
2919 RET_LABEL:;
2920 return var;
2921 }
2922 /* method kernel$Int$> for (self: Int, Int): Bool */
2923 short int core___core__Int___Comparable___62d(long self, long p0) {
2924 short int var /* : Bool */;
2925 short int var1 /* : Bool */;
2926 int cltype;
2927 int idtype;
2928 const char* var_class_name;
2929 short int var2 /* : Bool */;
2930 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2931 /* <p0:Int> isa OTHER */
2932 var1 = 1; /* easy <p0:Int> isa OTHER*/
2933 if (unlikely(!var1)) {
2934 var_class_name = type_core__Int.name;
2935 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2936 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2937 fatal_exit(1);
2938 }
2939 var2 = self > p0;
2940 var = var2;
2941 goto RET_LABEL;
2942 RET_LABEL:;
2943 return var;
2944 }
2945 /* method kernel$Int$> for (self: Comparable, Comparable): Bool */
2946 short int VIRTUAL_core___core__Int___Comparable___62d(val* self, val* p0) {
2947 short int var /* : Bool */;
2948 short int var1 /* : Bool */;
2949 short int var3 /* : Bool */;
2950 int cltype;
2951 int idtype;
2952 const struct type* type_struct;
2953 const char* var_class_name;
2954 long var4 /* : Int */;
2955 long var5 /* : Int */;
2956 short int var6 /* : Bool */;
2957 { /* Inline kernel$Int$> (self,p0) on <self:Comparable(Int)> */
2958 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
2959 /* <p0:Comparable> isa OTHER */
2960 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2961 cltype = type_struct->color;
2962 idtype = type_struct->id;
2963 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2964 var3 = 0;
2965 } else {
2966 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2967 }
2968 if (unlikely(!var3)) {
2969 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2970 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2971 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2972 fatal_exit(1);
2973 }
2974 var4 = (long)(self)>>2;
2975 var5 = (long)(p0)>>2;
2976 var6 = var4 > var5;
2977 var1 = var6;
2978 goto RET_LABEL2;
2979 RET_LABEL2:(void)0;
2980 }
2981 var = var1;
2982 RET_LABEL:;
2983 return var;
2984 }
2985 /* method kernel$Int$+ for (self: Int, Int): Int */
2986 long core___core__Int___Numeric___43d(long self, long p0) {
2987 long var /* : Int */;
2988 short int var1 /* : Bool */;
2989 int cltype;
2990 int idtype;
2991 const char* var_class_name;
2992 long var2 /* : Int */;
2993 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2994 /* <p0:Int> isa OTHER */
2995 var1 = 1; /* easy <p0:Int> isa OTHER*/
2996 if (unlikely(!var1)) {
2997 var_class_name = type_core__Int.name;
2998 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2999 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3000 fatal_exit(1);
3001 }
3002 var2 = self + p0;
3003 var = var2;
3004 goto RET_LABEL;
3005 RET_LABEL:;
3006 return var;
3007 }
3008 /* method kernel$Int$+ for (self: Numeric, Numeric): Numeric */
3009 val* VIRTUAL_core___core__Int___Numeric___43d(val* self, val* p0) {
3010 val* var /* : Numeric */;
3011 long var1 /* : Int */;
3012 short int var3 /* : Bool */;
3013 int cltype;
3014 int idtype;
3015 const struct type* type_struct;
3016 const char* var_class_name;
3017 long var4 /* : Int */;
3018 long var5 /* : Int */;
3019 long var6 /* : Int */;
3020 val* var7 /* : Numeric */;
3021 { /* Inline kernel$Int$+ (self,p0) on <self:Numeric(Int)> */
3022 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
3023 /* <p0:Numeric> isa OTHER */
3024 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
3025 cltype = type_struct->color;
3026 idtype = type_struct->id;
3027 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
3028 var3 = 0;
3029 } else {
3030 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
3031 }
3032 if (unlikely(!var3)) {
3033 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
3034 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3035 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3036 fatal_exit(1);
3037 }
3038 var4 = (long)(self)>>2;
3039 var5 = (long)(p0)>>2;
3040 var6 = var4 + var5;
3041 var1 = var6;
3042 goto RET_LABEL2;
3043 RET_LABEL2:(void)0;
3044 }
3045 var7 = (val*)(var1<<2|1);
3046 var = var7;
3047 RET_LABEL:;
3048 return var;
3049 }
3050 /* method kernel$Int$unary - for (self: Int): Int */
3051 long core___core__Int___Numeric__unary_32d_45d(long self) {
3052 long var /* : Int */;
3053 long var1 /* : Int */;
3054 var1 = -self;
3055 var = var1;
3056 goto RET_LABEL;
3057 RET_LABEL:;
3058 return var;
3059 }
3060 /* method kernel$Int$unary - for (self: Numeric): Numeric */
3061 val* VIRTUAL_core___core__Int___Numeric__unary_32d_45d(val* self) {
3062 val* var /* : Numeric */;
3063 long var1 /* : Int */;
3064 long var3 /* : Int */;
3065 long var4 /* : Int */;
3066 val* var5 /* : Numeric */;
3067 { /* Inline kernel$Int$unary - (self) on <self:Numeric(Int)> */
3068 var3 = (long)(self)>>2;
3069 var4 = -var3;
3070 var1 = var4;
3071 goto RET_LABEL2;
3072 RET_LABEL2:(void)0;
3073 }
3074 var5 = (val*)(var1<<2|1);
3075 var = var5;
3076 RET_LABEL:;
3077 return var;
3078 }
3079 /* method kernel$Int$- for (self: Int, Int): Int */
3080 long core___core__Int___Numeric___45d(long self, long p0) {
3081 long var /* : Int */;
3082 short int var1 /* : Bool */;
3083 int cltype;
3084 int idtype;
3085 const char* var_class_name;
3086 long var2 /* : Int */;
3087 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
3088 /* <p0:Int> isa OTHER */
3089 var1 = 1; /* easy <p0:Int> isa OTHER*/
3090 if (unlikely(!var1)) {
3091 var_class_name = type_core__Int.name;
3092 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3093 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3094 fatal_exit(1);
3095 }
3096 var2 = self - p0;
3097 var = var2;
3098 goto RET_LABEL;
3099 RET_LABEL:;
3100 return var;
3101 }
3102 /* method kernel$Int$- for (self: Numeric, Numeric): Numeric */
3103 val* VIRTUAL_core___core__Int___Numeric___45d(val* self, val* p0) {
3104 val* var /* : Numeric */;
3105 long var1 /* : Int */;
3106 short int var3 /* : Bool */;
3107 int cltype;
3108 int idtype;
3109 const struct type* type_struct;
3110 const char* var_class_name;
3111 long var4 /* : Int */;
3112 long var5 /* : Int */;
3113 long var6 /* : Int */;
3114 val* var7 /* : Numeric */;
3115 { /* Inline kernel$Int$- (self,p0) on <self:Numeric(Int)> */
3116 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
3117 /* <p0:Numeric> isa OTHER */
3118 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
3119 cltype = type_struct->color;
3120 idtype = type_struct->id;
3121 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
3122 var3 = 0;
3123 } else {
3124 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
3125 }
3126 if (unlikely(!var3)) {
3127 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
3128 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3129 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3130 fatal_exit(1);
3131 }
3132 var4 = (long)(self)>>2;
3133 var5 = (long)(p0)>>2;
3134 var6 = var4 - var5;
3135 var1 = var6;
3136 goto RET_LABEL2;
3137 RET_LABEL2:(void)0;
3138 }
3139 var7 = (val*)(var1<<2|1);
3140 var = var7;
3141 RET_LABEL:;
3142 return var;
3143 }
3144 /* method kernel$Int$* for (self: Int, Int): Int */
3145 long core___core__Int___Numeric___42d(long self, long p0) {
3146 long var /* : Int */;
3147 short int var1 /* : Bool */;
3148 int cltype;
3149 int idtype;
3150 const char* var_class_name;
3151 long var2 /* : Int */;
3152 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
3153 /* <p0:Int> isa OTHER */
3154 var1 = 1; /* easy <p0:Int> isa OTHER*/
3155 if (unlikely(!var1)) {
3156 var_class_name = type_core__Int.name;
3157 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3158 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 732);
3159 fatal_exit(1);
3160 }
3161 var2 = self * p0;
3162 var = var2;
3163 goto RET_LABEL;
3164 RET_LABEL:;
3165 return var;
3166 }
3167 /* method kernel$Int$* for (self: Numeric, Numeric): Numeric */
3168 val* VIRTUAL_core___core__Int___Numeric___42d(val* self, val* p0) {
3169 val* var /* : Numeric */;
3170 long var1 /* : Int */;
3171 short int var3 /* : Bool */;
3172 int cltype;
3173 int idtype;
3174 const struct type* type_struct;
3175 const char* var_class_name;
3176 long var4 /* : Int */;
3177 long var5 /* : Int */;
3178 long var6 /* : Int */;
3179 val* var7 /* : Numeric */;
3180 { /* Inline kernel$Int$* (self,p0) on <self:Numeric(Int)> */
3181 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
3182 /* <p0:Numeric> isa OTHER */
3183 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
3184 cltype = type_struct->color;
3185 idtype = type_struct->id;
3186 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
3187 var3 = 0;
3188 } else {
3189 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
3190 }
3191 if (unlikely(!var3)) {
3192 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
3193 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3194 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 732);
3195 fatal_exit(1);
3196 }
3197 var4 = (long)(self)>>2;
3198 var5 = (long)(p0)>>2;
3199 var6 = var4 * var5;
3200 var1 = var6;
3201 goto RET_LABEL2;
3202 RET_LABEL2:(void)0;
3203 }
3204 var7 = (val*)(var1<<2|1);
3205 var = var7;
3206 RET_LABEL:;
3207 return var;
3208 }
3209 /* method kernel$Int$/ for (self: Int, Int): Int */
3210 long core___core__Int___Numeric___47d(long self, long p0) {
3211 long var /* : Int */;
3212 short int var1 /* : Bool */;
3213 int cltype;
3214 int idtype;
3215 const char* var_class_name;
3216 long var2 /* : Int */;
3217 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
3218 /* <p0:Int> isa OTHER */
3219 var1 = 1; /* easy <p0:Int> isa OTHER*/
3220 if (unlikely(!var1)) {
3221 var_class_name = type_core__Int.name;
3222 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3223 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
3224 fatal_exit(1);
3225 }
3226 var2 = self / p0;
3227 var = var2;
3228 goto RET_LABEL;
3229 RET_LABEL:;
3230 return var;
3231 }
3232 /* method kernel$Int$/ for (self: Numeric, Numeric): Numeric */
3233 val* VIRTUAL_core___core__Int___Numeric___47d(val* self, val* p0) {
3234 val* var /* : Numeric */;
3235 long var1 /* : Int */;
3236 short int var3 /* : Bool */;
3237 int cltype;
3238 int idtype;
3239 const struct type* type_struct;
3240 const char* var_class_name;
3241 long var4 /* : Int */;
3242 long var5 /* : Int */;
3243 long var6 /* : Int */;
3244 val* var7 /* : Numeric */;
3245 { /* Inline kernel$Int$/ (self,p0) on <self:Numeric(Int)> */
3246 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
3247 /* <p0:Numeric> isa OTHER */
3248 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
3249 cltype = type_struct->color;
3250 idtype = type_struct->id;
3251 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
3252 var3 = 0;
3253 } else {
3254 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
3255 }
3256 if (unlikely(!var3)) {
3257 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
3258 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3259 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
3260 fatal_exit(1);
3261 }
3262 var4 = (long)(self)>>2;
3263 var5 = (long)(p0)>>2;
3264 var6 = var4 / var5;
3265 var1 = var6;
3266 goto RET_LABEL2;
3267 RET_LABEL2:(void)0;
3268 }
3269 var7 = (val*)(var1<<2|1);
3270 var = var7;
3271 RET_LABEL:;
3272 return var;
3273 }
3274 /* method kernel$Int$% for (self: Int, Int): Int */
3275 long core___core__Int____37d(long self, long p0) {
3276 long var /* : Int */;
3277 long var1 /* : Int */;
3278 var1 = self % p0;
3279 var = var1;
3280 goto RET_LABEL;
3281 RET_LABEL:;
3282 return var;
3283 }
3284 /* method kernel$Int$<< for (self: Int, Int): Int */
3285 long core___core__Int____60d_60d(long self, long p0) {
3286 long var /* : Int */;
3287 long var1 /* : Int */;
3288 var1 = self << p0;
3289 var = var1;
3290 goto RET_LABEL;
3291 RET_LABEL:;
3292 return var;
3293 }
3294 /* method kernel$Int$>> for (self: Int, Int): Int */
3295 long core___core__Int____62d_62d(long self, long p0) {
3296 long var /* : Int */;
3297 long var1 /* : Int */;
3298 var1 = self >> p0;
3299 var = var1;
3300 goto RET_LABEL;
3301 RET_LABEL:;
3302 return var;
3303 }
3304 /* method kernel$Int$to_i for (self: Int): Int */
3305 long core___core__Int___Numeric__to_i(long self) {
3306 long var /* : Int */;
3307 var = self;
3308 goto RET_LABEL;
3309 RET_LABEL:;
3310 return var;
3311 }
3312 /* method kernel$Int$to_i for (self: Numeric): Int */
3313 long VIRTUAL_core___core__Int___Numeric__to_i(val* self) {
3314 long var /* : Int */;
3315 long var1 /* : Int */;
3316 long var2 /* : Int */;
3317 var2 = (long)(self)>>2;
3318 var1 = core___core__Int___Numeric__to_i(var2);
3319 var = var1;
3320 RET_LABEL:;
3321 return var;
3322 }
3323 /* method kernel$Int$to_f for (self: Int): Float */
3324 double core___core__Int___Numeric__to_f(long self) {
3325 double var /* : Float */;
3326 double var1 /* : Float */;
3327 var1 = (double)self;
3328 var = var1;
3329 goto RET_LABEL;
3330 RET_LABEL:;
3331 return var;
3332 }
3333 /* method kernel$Int$to_f for (self: Numeric): Float */
3334 double VIRTUAL_core___core__Int___Numeric__to_f(val* self) {
3335 double var /* : Float */;
3336 double var1 /* : Float */;
3337 long var3 /* : Int */;
3338 double var4 /* : Float */;
3339 { /* Inline kernel$Int$to_f (self) on <self:Numeric(Int)> */
3340 var3 = (long)(self)>>2;
3341 var4 = (double)var3;
3342 var1 = var4;
3343 goto RET_LABEL2;
3344 RET_LABEL2:(void)0;
3345 }
3346 var = var1;
3347 RET_LABEL:;
3348 return var;
3349 }
3350 /* method kernel$Int$to_b for (self: Int): Byte */
3351 unsigned char core___core__Int___Numeric__to_b(long self) {
3352 unsigned char var /* : Byte */;
3353 unsigned char var1 /* : Byte */;
3354 var1 = (unsigned char)self;
3355 var = var1;
3356 goto RET_LABEL;
3357 RET_LABEL:;
3358 return var;
3359 }
3360 /* method kernel$Int$to_b for (self: Numeric): Byte */
3361 unsigned char VIRTUAL_core___core__Int___Numeric__to_b(val* self) {
3362 unsigned char var /* : Byte */;
3363 unsigned char var1 /* : Byte */;
3364 long var3 /* : Int */;
3365 unsigned char var4 /* : Byte */;
3366 { /* Inline kernel$Int$to_b (self) on <self:Numeric(Int)> */
3367 var3 = (long)(self)>>2;
3368 var4 = (unsigned char)var3;
3369 var1 = var4;
3370 goto RET_LABEL2;
3371 RET_LABEL2:(void)0;
3372 }
3373 var = var1;
3374 RET_LABEL:;
3375 return var;
3376 }
3377 /* method kernel$Int$distance for (self: Int, Int): Int */
3378 long core___core__Int___Discrete__distance(long self, long p0) {
3379 long var /* : Int */;
3380 short int var1 /* : Bool */;
3381 int cltype;
3382 int idtype;
3383 const char* var_class_name;
3384 long var_i /* var i: Int */;
3385 long var2 /* : Int */;
3386 short int var4 /* : Bool */;
3387 int cltype5;
3388 int idtype6;
3389 const char* var_class_name7;
3390 long var8 /* : Int */;
3391 long var_d /* var d: Int */;
3392 short int var9 /* : Bool */;
3393 short int var11 /* : Bool */;
3394 int cltype12;
3395 int idtype13;
3396 const char* var_class_name14;
3397 short int var15 /* : Bool */;
3398 long var16 /* : Int */;
3399 long var18 /* : Int */;
3400 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
3401 /* <p0:Int> isa OTHER */
3402 var1 = 1; /* easy <p0:Int> isa OTHER*/
3403 if (unlikely(!var1)) {
3404 var_class_name = type_core__Int.name;
3405 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3406 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 760);
3407 fatal_exit(1);
3408 }
3409 var_i = p0;
3410 {
3411 { /* Inline kernel$Int$- (self,var_i) on <self:Int> */
3412 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
3413 /* <var_i:Int> isa OTHER */
3414 var4 = 1; /* easy <var_i:Int> isa OTHER*/
3415 if (unlikely(!var4)) {
3416 var_class_name7 = type_core__Int.name;
3417 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
3418 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3419 fatal_exit(1);
3420 }
3421 var8 = self - var_i;
3422 var2 = var8;
3423 goto RET_LABEL3;
3424 RET_LABEL3:(void)0;
3425 }
3426 }
3427 var_d = var2;
3428 {
3429 { /* Inline kernel$Int$>= (var_d,0l) on <var_d:Int> */
3430 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3431 /* <0l:Int> isa OTHER */
3432 var11 = 1; /* easy <0l:Int> isa OTHER*/
3433 if (unlikely(!var11)) {
3434 var_class_name14 = type_core__Int.name;
3435 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
3436 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
3437 fatal_exit(1);
3438 }
3439 var15 = var_d >= 0l;
3440 var9 = var15;
3441 goto RET_LABEL10;
3442 RET_LABEL10:(void)0;
3443 }
3444 }
3445 if (var9){
3446 var = var_d;
3447 goto RET_LABEL;
3448 } else {
3449 {
3450 { /* Inline kernel$Int$unary - (var_d) on <var_d:Int> */
3451 var18 = -var_d;
3452 var16 = var18;
3453 goto RET_LABEL17;
3454 RET_LABEL17:(void)0;
3455 }
3456 }
3457 var = var16;
3458 goto RET_LABEL;
3459 }
3460 RET_LABEL:;
3461 return var;
3462 }
3463 /* method kernel$Int$distance for (self: Discrete, Discrete): Int */
3464 long VIRTUAL_core___core__Int___Discrete__distance(val* self, val* p0) {
3465 long var /* : Int */;
3466 long var1 /* : Int */;
3467 long var2 /* : Int */;
3468 long var3 /* : Int */;
3469 var2 = (long)(self)>>2;
3470 var3 = (long)(p0)>>2;
3471 var1 = core___core__Int___Discrete__distance(var2, var3);
3472 var = var1;
3473 RET_LABEL:;
3474 return var;
3475 }
3476 /* method kernel$Int$<=> for (self: Int, Int): Int */
3477 long core___core__Int___Comparable___60d_61d_62d(long self, long p0) {
3478 long var /* : Int */;
3479 short int var1 /* : Bool */;
3480 int cltype;
3481 int idtype;
3482 const char* var_class_name;
3483 long var_other /* var other: Int */;
3484 short int var2 /* : Bool */;
3485 short int var4 /* : Bool */;
3486 int cltype5;
3487 int idtype6;
3488 const char* var_class_name7;
3489 short int var8 /* : Bool */;
3490 long var9 /* : Int */;
3491 long var11 /* : Int */;
3492 short int var12 /* : Bool */;
3493 short int var14 /* : Bool */;
3494 int cltype15;
3495 int idtype16;
3496 const char* var_class_name17;
3497 short int var18 /* : Bool */;
3498 /* Covariant cast for argument 0 (other) <p0:Int> isa OTHER */
3499 /* <p0:Int> isa OTHER */
3500 var1 = 1; /* easy <p0:Int> isa OTHER*/
3501 if (unlikely(!var1)) {
3502 var_class_name = type_core__Int.name;
3503 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3504 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 770);
3505 fatal_exit(1);
3506 }
3507 var_other = p0;
3508 {
3509 { /* Inline kernel$Int$< (self,var_other) on <self:Int> */
3510 /* Covariant cast for argument 0 (i) <var_other:Int> isa OTHER */
3511 /* <var_other:Int> isa OTHER */
3512 var4 = 1; /* easy <var_other:Int> isa OTHER*/
3513 if (unlikely(!var4)) {
3514 var_class_name7 = type_core__Int.name;
3515 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
3516 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3517 fatal_exit(1);
3518 }
3519 var8 = self < var_other;
3520 var2 = var8;
3521 goto RET_LABEL3;
3522 RET_LABEL3:(void)0;
3523 }
3524 }
3525 if (var2){
3526 {
3527 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
3528 var11 = -1l;
3529 var9 = var11;
3530 goto RET_LABEL10;
3531 RET_LABEL10:(void)0;
3532 }
3533 }
3534 var = var9;
3535 goto RET_LABEL;
3536 } else {
3537 {
3538 { /* Inline kernel$Int$< (var_other,self) on <var_other:Int> */
3539 /* Covariant cast for argument 0 (i) <self:Int> isa OTHER */
3540 /* <self:Int> isa OTHER */
3541 var14 = 1; /* easy <self:Int> isa OTHER*/
3542 if (unlikely(!var14)) {
3543 var_class_name17 = type_core__Int.name;
3544 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
3545 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3546 fatal_exit(1);
3547 }
3548 var18 = var_other < self;
3549 var12 = var18;
3550 goto RET_LABEL13;
3551 RET_LABEL13:(void)0;
3552 }
3553 }
3554 if (var12){
3555 var = 1l;
3556 goto RET_LABEL;
3557 } else {
3558 var = 0l;
3559 goto RET_LABEL;
3560 }
3561 }
3562 RET_LABEL:;
3563 return var;
3564 }
3565 /* method kernel$Int$<=> for (self: Comparable, Comparable): Int */
3566 long VIRTUAL_core___core__Int___Comparable___60d_61d_62d(val* self, val* p0) {
3567 long var /* : Int */;
3568 long var1 /* : Int */;
3569 long var2 /* : Int */;
3570 long var3 /* : Int */;
3571 var2 = (long)(self)>>2;
3572 var3 = (long)(p0)>>2;
3573 var1 = core___core__Int___Comparable___60d_61d_62d(var2, var3);
3574 var = var1;
3575 RET_LABEL:;
3576 return var;
3577 }
3578 /* method kernel$Int$max for (self: Int, Int): Int */
3579 long core___core__Int___Comparable__max(long self, long p0) {
3580 long var /* : Int */;
3581 short int var1 /* : Bool */;
3582 int cltype;
3583 int idtype;
3584 const char* var_class_name;
3585 long var_other /* var other: Int */;
3586 short int var2 /* : Bool */;
3587 short int var4 /* : Bool */;
3588 int cltype5;
3589 int idtype6;
3590 const char* var_class_name7;
3591 short int var8 /* : Bool */;
3592 /* Covariant cast for argument 0 (other) <p0:Int> isa OTHER */
3593 /* <p0:Int> isa OTHER */
3594 var1 = 1; /* easy <p0:Int> isa OTHER*/
3595 if (unlikely(!var1)) {
3596 var_class_name = type_core__Int.name;
3597 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3598 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 790);
3599 fatal_exit(1);
3600 }
3601 var_other = p0;
3602 {
3603 { /* Inline kernel$Int$< (self,var_other) on <self:Int> */
3604 /* Covariant cast for argument 0 (i) <var_other:Int> isa OTHER */
3605 /* <var_other:Int> isa OTHER */
3606 var4 = 1; /* easy <var_other:Int> isa OTHER*/
3607 if (unlikely(!var4)) {
3608 var_class_name7 = type_core__Int.name;
3609 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
3610 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3611 fatal_exit(1);
3612 }
3613 var8 = self < var_other;
3614 var2 = var8;
3615 goto RET_LABEL3;
3616 RET_LABEL3:(void)0;
3617 }
3618 }
3619 if (var2){
3620 var = var_other;
3621 goto RET_LABEL;
3622 } else {
3623 var = self;
3624 goto RET_LABEL;
3625 }
3626 RET_LABEL:;
3627 return var;
3628 }
3629 /* method kernel$Int$max for (self: Comparable, Comparable): Comparable */
3630 val* VIRTUAL_core___core__Int___Comparable__max(val* self, val* p0) {
3631 val* var /* : Comparable */;
3632 long var1 /* : Int */;
3633 long var2 /* : Int */;
3634 long var3 /* : Int */;
3635 val* var4 /* : Comparable */;
3636 var2 = (long)(self)>>2;
3637 var3 = (long)(p0)>>2;
3638 var1 = core___core__Int___Comparable__max(var2, var3);
3639 var4 = (val*)(var1<<2|1);
3640 var = var4;
3641 RET_LABEL:;
3642 return var;
3643 }
3644 /* method kernel$Int$min for (self: Int, Int): Int */
3645 long core___core__Int___Comparable__min(long self, long p0) {
3646 long var /* : Int */;
3647 short int var1 /* : Bool */;
3648 int cltype;
3649 int idtype;
3650 const char* var_class_name;
3651 long var_c /* var c: Int */;
3652 short int var2 /* : Bool */;
3653 short int var4 /* : Bool */;
3654 int cltype5;
3655 int idtype6;
3656 const char* var_class_name7;
3657 short int var8 /* : Bool */;
3658 /* Covariant cast for argument 0 (c) <p0:Int> isa OTHER */
3659 /* <p0:Int> isa OTHER */
3660 var1 = 1; /* easy <p0:Int> isa OTHER*/
3661 if (unlikely(!var1)) {
3662 var_class_name = type_core__Int.name;
3663 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3664 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 799);
3665 fatal_exit(1);
3666 }
3667 var_c = p0;
3668 {
3669 { /* Inline kernel$Int$< (var_c,self) on <var_c:Int> */
3670 /* Covariant cast for argument 0 (i) <self:Int> isa OTHER */
3671 /* <self:Int> isa OTHER */
3672 var4 = 1; /* easy <self:Int> isa OTHER*/
3673 if (unlikely(!var4)) {
3674 var_class_name7 = type_core__Int.name;
3675 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
3676 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3677 fatal_exit(1);
3678 }
3679 var8 = var_c < self;
3680 var2 = var8;
3681 goto RET_LABEL3;
3682 RET_LABEL3:(void)0;
3683 }
3684 }
3685 if (var2){
3686 var = var_c;
3687 goto RET_LABEL;
3688 } else {
3689 var = self;
3690 goto RET_LABEL;
3691 }
3692 RET_LABEL:;
3693 return var;
3694 }
3695 /* method kernel$Int$min for (self: Comparable, Comparable): Comparable */
3696 val* VIRTUAL_core___core__Int___Comparable__min(val* self, val* p0) {
3697 val* var /* : Comparable */;
3698 long var1 /* : Int */;
3699 long var2 /* : Int */;
3700 long var3 /* : Int */;
3701 val* var4 /* : Comparable */;
3702 var2 = (long)(self)>>2;
3703 var3 = (long)(p0)>>2;
3704 var1 = core___core__Int___Comparable__min(var2, var3);
3705 var4 = (val*)(var1<<2|1);
3706 var = var4;
3707 RET_LABEL:;
3708 return var;
3709 }
3710 /* method kernel$Int$code_point for (self: Int): Char */
3711 uint32_t core___core__Int___code_point(long self) {
3712 uint32_t var /* : Char */;
3713 uint32_t var1 /* : Char */;
3714 var1 = (uint32_t)self;
3715 var = var1;
3716 goto RET_LABEL;
3717 RET_LABEL:;
3718 return var;
3719 }
3720 /* method kernel$Int$digit_count for (self: Int, Int): Int */
3721 long core___core__Int___digit_count(long self, long p0) {
3722 long var /* : Int */;
3723 long var_b /* var b: Int */;
3724 short int var1 /* : Bool */;
3725 short int var3 /* : Bool */;
3726 long var4 /* : Int */;
3727 short int var5 /* : Bool */;
3728 short int var7 /* : Bool */;
3729 int cltype;
3730 int idtype;
3731 const char* var_class_name;
3732 short int var8 /* : Bool */;
3733 long var_d /* var d: Int */;
3734 long var9 /* : Int */;
3735 long var11 /* : Int */;
3736 long var_n /* var n: Int */;
3737 short int var12 /* : Bool */;
3738 short int var14 /* : Bool */;
3739 short int var15 /* : Bool */;
3740 short int var17 /* : Bool */;
3741 int cltype18;
3742 int idtype19;
3743 const char* var_class_name20;
3744 short int var21 /* : Bool */;
3745 long var22 /* : Int */;
3746 short int var24 /* : Bool */;
3747 int cltype25;
3748 int idtype26;
3749 const char* var_class_name27;
3750 long var28 /* : Int */;
3751 long var29 /* : Int */;
3752 short int var31 /* : Bool */;
3753 int cltype32;
3754 int idtype33;
3755 const char* var_class_name34;
3756 long var35 /* : Int */;
3757 var_b = p0;
3758 {
3759 { /* Inline kernel$Int$== (var_b,10l) on <var_b:Int> */
3760 var3 = var_b == 10l;
3761 var1 = var3;
3762 goto RET_LABEL2;
3763 RET_LABEL2:(void)0;
3764 }
3765 }
3766 if (var1){
3767 {
3768 var4 = core___core__Int___digit_count_base_95d10(self);
3769 }
3770 var = var4;
3771 goto RET_LABEL;
3772 } else {
3773 }
3774 {
3775 { /* Inline kernel$Int$< (self,0l) on <self:Int> */
3776 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3777 /* <0l:Int> isa OTHER */
3778 var7 = 1; /* easy <0l:Int> isa OTHER*/
3779 if (unlikely(!var7)) {
3780 var_class_name = type_core__Int.name;
3781 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3782 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3783 fatal_exit(1);
3784 }
3785 var8 = self < 0l;
3786 var5 = var8;
3787 goto RET_LABEL6;
3788 RET_LABEL6:(void)0;
3789 }
3790 }
3791 if (var5){
3792 var_d = 1l;
3793 {
3794 { /* Inline kernel$Int$unary - (self) on <self:Int> */
3795 var11 = -self;
3796 var9 = var11;
3797 goto RET_LABEL10;
3798 RET_LABEL10:(void)0;
3799 }
3800 }
3801 var_n = var9;
3802 } else {
3803 {
3804 { /* Inline kernel$Int$== (self,0l) on <self:Int> */
3805 var14 = self == 0l;
3806 var12 = var14;
3807 goto RET_LABEL13;
3808 RET_LABEL13:(void)0;
3809 }
3810 }
3811 if (var12){
3812 var = 1l;
3813 goto RET_LABEL;
3814 } else {
3815 var_d = 0l;
3816 var_n = self;
3817 }
3818 }
3819 for(;;) {
3820 {
3821 { /* Inline kernel$Int$> (var_n,0l) on <var_n:Int> */
3822 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3823 /* <0l:Int> isa OTHER */
3824 var17 = 1; /* easy <0l:Int> isa OTHER*/
3825 if (unlikely(!var17)) {
3826 var_class_name20 = type_core__Int.name;
3827 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
3828 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
3829 fatal_exit(1);
3830 }
3831 var21 = var_n > 0l;
3832 var15 = var21;
3833 goto RET_LABEL16;
3834 RET_LABEL16:(void)0;
3835 }
3836 }
3837 if (var15){
3838 {
3839 { /* Inline kernel$Int$+ (var_d,1l) on <var_d:Int> */
3840 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3841 /* <1l:Int> isa OTHER */
3842 var24 = 1; /* easy <1l:Int> isa OTHER*/
3843 if (unlikely(!var24)) {
3844 var_class_name27 = type_core__Int.name;
3845 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
3846 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3847 fatal_exit(1);
3848 }
3849 var28 = var_d + 1l;
3850 var22 = var28;
3851 goto RET_LABEL23;
3852 RET_LABEL23:(void)0;
3853 }
3854 }
3855 var_d = var22;
3856 {
3857 { /* Inline kernel$Int$/ (var_n,var_b) on <var_n:Int> */
3858 /* Covariant cast for argument 0 (i) <var_b:Int> isa OTHER */
3859 /* <var_b:Int> isa OTHER */
3860 var31 = 1; /* easy <var_b:Int> isa OTHER*/
3861 if (unlikely(!var31)) {
3862 var_class_name34 = type_core__Int.name;
3863 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
3864 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
3865 fatal_exit(1);
3866 }
3867 var35 = var_n / var_b;
3868 var29 = var35;
3869 goto RET_LABEL30;
3870 RET_LABEL30:(void)0;
3871 }
3872 }
3873 var_n = var29;
3874 } else {
3875 goto BREAK_label;
3876 }
3877 }
3878 BREAK_label: (void)0;
3879 var = var_d;
3880 goto RET_LABEL;
3881 RET_LABEL:;
3882 return var;
3883 }
3884 /* method kernel$Int$digit_count_base_10 for (self: Int): Int */
3885 long core___core__Int___digit_count_base_95d10(long self) {
3886 long var /* : Int */;
3887 short int var1 /* : Bool */;
3888 short int var3 /* : Bool */;
3889 int cltype;
3890 int idtype;
3891 const char* var_class_name;
3892 short int var4 /* : Bool */;
3893 long var_result /* var result: Int */;
3894 long var5 /* : Int */;
3895 long var7 /* : Int */;
3896 long var_val /* var val: Int */;
3897 short int var8 /* : Bool */;
3898 short int var10 /* : Bool */;
3899 int cltype11;
3900 int idtype12;
3901 const char* var_class_name13;
3902 short int var14 /* : Bool */;
3903 short int var15 /* : Bool */;
3904 short int var17 /* : Bool */;
3905 int cltype18;
3906 int idtype19;
3907 const char* var_class_name20;
3908 short int var21 /* : Bool */;
3909 long var22 /* : Int */;
3910 short int var24 /* : Bool */;
3911 int cltype25;
3912 int idtype26;
3913 const char* var_class_name27;
3914 long var28 /* : Int */;
3915 short int var29 /* : Bool */;
3916 short int var31 /* : Bool */;
3917 int cltype32;
3918 int idtype33;
3919 const char* var_class_name34;
3920 short int var35 /* : Bool */;
3921 long var36 /* : Int */;
3922 short int var38 /* : Bool */;
3923 int cltype39;
3924 int idtype40;
3925 const char* var_class_name41;
3926 long var42 /* : Int */;
3927 short int var43 /* : Bool */;
3928 short int var45 /* : Bool */;
3929 int cltype46;
3930 int idtype47;
3931 const char* var_class_name48;
3932 short int var49 /* : Bool */;
3933 long var50 /* : Int */;
3934 short int var52 /* : Bool */;
3935 int cltype53;
3936 int idtype54;
3937 const char* var_class_name55;
3938 long var56 /* : Int */;
3939 long var57 /* : Int */;
3940 short int var59 /* : Bool */;
3941 int cltype60;
3942 int idtype61;
3943 const char* var_class_name62;
3944 long var63 /* : Int */;
3945 long var64 /* : Int */;
3946 short int var66 /* : Bool */;
3947 int cltype67;
3948 int idtype68;
3949 const char* var_class_name69;
3950 long var70 /* : Int */;
3951 {
3952 { /* Inline kernel$Int$< (self,0l) on <self:Int> */
3953 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3954 /* <0l:Int> isa OTHER */
3955 var3 = 1; /* easy <0l:Int> isa OTHER*/
3956 if (unlikely(!var3)) {
3957 var_class_name = type_core__Int.name;
3958 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3959 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3960 fatal_exit(1);
3961 }
3962 var4 = self < 0l;
3963 var1 = var4;
3964 goto RET_LABEL2;
3965 RET_LABEL2:(void)0;
3966 }
3967 }
3968 if (var1){
3969 var_result = 2l;
3970 {
3971 { /* Inline kernel$Int$unary - (self) on <self:Int> */
3972 var7 = -self;
3973 var5 = var7;
3974 goto RET_LABEL6;
3975 RET_LABEL6:(void)0;
3976 }
3977 }
3978 var_val = var5;
3979 } else {
3980 var_result = 1l;
3981 var_val = self;
3982 }
3983 for(;;) {
3984 {
3985 { /* Inline kernel$Int$< (var_val,10l) on <var_val:Int> */
3986 /* Covariant cast for argument 0 (i) <10l:Int> isa OTHER */
3987 /* <10l:Int> isa OTHER */
3988 var10 = 1; /* easy <10l:Int> isa OTHER*/
3989 if (unlikely(!var10)) {
3990 var_class_name13 = type_core__Int.name;
3991 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
3992 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3993 fatal_exit(1);
3994 }
3995 var14 = var_val < 10l;
3996 var8 = var14;
3997 goto RET_LABEL9;
3998 RET_LABEL9:(void)0;
3999 }
4000 }
4001 if (var8){
4002 var = var_result;
4003 goto RET_LABEL;
4004 } else {
4005 }
4006 {
4007 { /* Inline kernel$Int$< (var_val,100l) on <var_val:Int> */
4008 /* Covariant cast for argument 0 (i) <100l:Int> isa OTHER */
4009 /* <100l:Int> isa OTHER */
4010 var17 = 1; /* easy <100l:Int> isa OTHER*/
4011 if (unlikely(!var17)) {
4012 var_class_name20 = type_core__Int.name;
4013 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
4014 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
4015 fatal_exit(1);
4016 }
4017 var21 = var_val < 100l;
4018 var15 = var21;
4019 goto RET_LABEL16;
4020 RET_LABEL16:(void)0;
4021 }
4022 }
4023 if (var15){
4024 {
4025 { /* Inline kernel$Int$+ (var_result,1l) on <var_result:Int> */
4026 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4027 /* <1l:Int> isa OTHER */
4028 var24 = 1; /* easy <1l:Int> isa OTHER*/
4029 if (unlikely(!var24)) {
4030 var_class_name27 = type_core__Int.name;
4031 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
4032 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4033 fatal_exit(1);
4034 }
4035 var28 = var_result + 1l;
4036 var22 = var28;
4037 goto RET_LABEL23;
4038 RET_LABEL23:(void)0;
4039 }
4040 }
4041 var = var22;
4042 goto RET_LABEL;
4043 } else {
4044 }
4045 {
4046 { /* Inline kernel$Int$< (var_val,1000l) on <var_val:Int> */
4047 /* Covariant cast for argument 0 (i) <1000l:Int> isa OTHER */
4048 /* <1000l:Int> isa OTHER */
4049 var31 = 1; /* easy <1000l:Int> isa OTHER*/
4050 if (unlikely(!var31)) {
4051 var_class_name34 = type_core__Int.name;
4052 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
4053 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
4054 fatal_exit(1);
4055 }
4056 var35 = var_val < 1000l;
4057 var29 = var35;
4058 goto RET_LABEL30;
4059 RET_LABEL30:(void)0;
4060 }
4061 }
4062 if (var29){
4063 {
4064 { /* Inline kernel$Int$+ (var_result,2l) on <var_result:Int> */
4065 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
4066 /* <2l:Int> isa OTHER */
4067 var38 = 1; /* easy <2l:Int> isa OTHER*/
4068 if (unlikely(!var38)) {
4069 var_class_name41 = type_core__Int.name;
4070 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
4071 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4072 fatal_exit(1);
4073 }
4074 var42 = var_result + 2l;
4075 var36 = var42;
4076 goto RET_LABEL37;
4077 RET_LABEL37:(void)0;
4078 }
4079 }
4080 var = var36;
4081 goto RET_LABEL;
4082 } else {
4083 }
4084 {
4085 { /* Inline kernel$Int$< (var_val,10000l) on <var_val:Int> */
4086 /* Covariant cast for argument 0 (i) <10000l:Int> isa OTHER */
4087 /* <10000l:Int> isa OTHER */
4088 var45 = 1; /* easy <10000l:Int> isa OTHER*/
4089 if (unlikely(!var45)) {
4090 var_class_name48 = type_core__Int.name;
4091 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
4092 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
4093 fatal_exit(1);
4094 }
4095 var49 = var_val < 10000l;
4096 var43 = var49;
4097 goto RET_LABEL44;
4098 RET_LABEL44:(void)0;
4099 }
4100 }
4101 if (var43){
4102 {
4103 { /* Inline kernel$Int$+ (var_result,3l) on <var_result:Int> */
4104 /* Covariant cast for argument 0 (i) <3l:Int> isa OTHER */
4105 /* <3l:Int> isa OTHER */
4106 var52 = 1; /* easy <3l:Int> isa OTHER*/
4107 if (unlikely(!var52)) {
4108 var_class_name55 = type_core__Int.name;
4109 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
4110 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4111 fatal_exit(1);
4112 }
4113 var56 = var_result + 3l;
4114 var50 = var56;
4115 goto RET_LABEL51;
4116 RET_LABEL51:(void)0;
4117 }
4118 }
4119 var = var50;
4120 goto RET_LABEL;
4121 } else {
4122 }
4123 {
4124 { /* Inline kernel$Int$/ (var_val,10000l) on <var_val:Int> */
4125 /* Covariant cast for argument 0 (i) <10000l:Int> isa OTHER */
4126 /* <10000l:Int> isa OTHER */
4127 var59 = 1; /* easy <10000l:Int> isa OTHER*/
4128 if (unlikely(!var59)) {
4129 var_class_name62 = type_core__Int.name;
4130 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62);
4131 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
4132 fatal_exit(1);
4133 }
4134 var63 = var_val / 10000l;
4135 var57 = var63;
4136 goto RET_LABEL58;
4137 RET_LABEL58:(void)0;
4138 }
4139 }
4140 var_val = var57;
4141 {
4142 { /* Inline kernel$Int$+ (var_result,4l) on <var_result:Int> */
4143 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
4144 /* <4l:Int> isa OTHER */
4145 var66 = 1; /* easy <4l:Int> isa OTHER*/
4146 if (unlikely(!var66)) {
4147 var_class_name69 = type_core__Int.name;
4148 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name69);
4149 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4150 fatal_exit(1);
4151 }
4152 var70 = var_result + 4l;
4153 var64 = var70;
4154 goto RET_LABEL65;
4155 RET_LABEL65:(void)0;
4156 }
4157 }
4158 var_result = var64;
4159 }
4160 RET_LABEL:;
4161 return var;
4162 }
4163 /* method kernel$Int$to_c for (self: Int): Char */
4164 uint32_t core___core__Int___to_c(long self) {
4165 uint32_t var /* : Char */;
4166 short int var1 /* : Bool */;
4167 short int var2 /* : Bool */;
4168 short int var4 /* : Bool */;
4169 int cltype;
4170 int idtype;
4171 const char* var_class_name;
4172 short int var5 /* : Bool */;
4173 short int var_ /* var : Bool */;
4174 short int var6 /* : Bool */;
4175 short int var8 /* : Bool */;
4176 int cltype9;
4177 int idtype10;
4178 const char* var_class_name11;
4179 short int var12 /* : Bool */;
4180 short int var13 /* : Bool */;
4181 short int var15 /* : Bool */;
4182 int cltype16;
4183 int idtype17;
4184 const char* var_class_name18;
4185 short int var19 /* : Bool */;
4186 long var20 /* : Int */;
4187 long var22 /* : Int */;
4188 long var23 /* : Int */;
4189 short int var25 /* : Bool */;
4190 int cltype26;
4191 int idtype27;
4192 const char* var_class_name28;
4193 long var29 /* : Int */;
4194 uint32_t var30 /* : Char */;
4195 uint32_t var32 /* : Char */;
4196 long var33 /* : Int */;
4197 short int var35 /* : Bool */;
4198 int cltype36;
4199 int idtype37;
4200 const char* var_class_name38;
4201 long var39 /* : Int */;
4202 long var40 /* : Int */;
4203 long var42 /* : Int */;
4204 long var43 /* : Int */;
4205 short int var45 /* : Bool */;
4206 int cltype46;
4207 int idtype47;
4208 const char* var_class_name48;
4209 long var49 /* : Int */;
4210 uint32_t var50 /* : Char */;
4211 uint32_t var52 /* : Char */;
4212 {
4213 { /* Inline kernel$Int$>= (self,0l) on <self:Int> */
4214 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4215 /* <0l:Int> isa OTHER */
4216 var4 = 1; /* easy <0l:Int> isa OTHER*/
4217 if (unlikely(!var4)) {
4218 var_class_name = type_core__Int.name;
4219 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4220 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
4221 fatal_exit(1);
4222 }
4223 var5 = self >= 0l;
4224 var2 = var5;
4225 goto RET_LABEL3;
4226 RET_LABEL3:(void)0;
4227 }
4228 }
4229 var_ = var2;
4230 if (var2){
4231 {
4232 { /* Inline kernel$Int$<= (self,36l) on <self:Int> */
4233 /* Covariant cast for argument 0 (i) <36l:Int> isa OTHER */
4234 /* <36l:Int> isa OTHER */
4235 var8 = 1; /* easy <36l:Int> isa OTHER*/
4236 if (unlikely(!var8)) {
4237 var_class_name11 = type_core__Int.name;
4238 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
4239 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
4240 fatal_exit(1);
4241 }
4242 var12 = self <= 36l;
4243 var6 = var12;
4244 goto RET_LABEL7;
4245 RET_LABEL7:(void)0;
4246 }
4247 }
4248 var1 = var6;
4249 } else {
4250 var1 = var_;
4251 }
4252 if (unlikely(!var1)) {
4253 if(catchStack.cursor >= 0){
4254 longjmp(catchStack.envs[catchStack.cursor], 1);
4255 }
4256 PRINT_ERROR("Runtime error: %s", "Assert failed");
4257 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 871);
4258 fatal_exit(1);
4259 }
4260 {
4261 { /* Inline kernel$Int$< (self,10l) on <self:Int> */
4262 /* Covariant cast for argument 0 (i) <10l:Int> isa OTHER */
4263 /* <10l:Int> isa OTHER */
4264 var15 = 1; /* easy <10l:Int> isa OTHER*/
4265 if (unlikely(!var15)) {
4266 var_class_name18 = type_core__Int.name;
4267 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
4268 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
4269 fatal_exit(1);
4270 }
4271 var19 = self < 10l;
4272 var13 = var19;
4273 goto RET_LABEL14;
4274 RET_LABEL14:(void)0;
4275 }
4276 }
4277 if (var13){
4278 {
4279 { /* Inline kernel$Char$code_point ('0') on <'0':Char> */
4280 var22 = (long)'0';
4281 var20 = var22;
4282 goto RET_LABEL21;
4283 RET_LABEL21:(void)0;
4284 }
4285 }
4286 {
4287 { /* Inline kernel$Int$+ (self,var20) on <self:Int> */
4288 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
4289 /* <var20:Int> isa OTHER */
4290 var25 = 1; /* easy <var20:Int> isa OTHER*/
4291 if (unlikely(!var25)) {
4292 var_class_name28 = type_core__Int.name;
4293 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
4294 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4295 fatal_exit(1);
4296 }
4297 var29 = self + var20;
4298 var23 = var29;
4299 goto RET_LABEL24;
4300 RET_LABEL24:(void)0;
4301 }
4302 }
4303 {
4304 { /* Inline kernel$Int$code_point (var23) on <var23:Int> */
4305 var32 = (uint32_t)var23;
4306 var30 = var32;
4307 goto RET_LABEL31;
4308 RET_LABEL31:(void)0;
4309 }
4310 }
4311 var = var30;
4312 goto RET_LABEL;
4313 } else {
4314 {
4315 { /* Inline kernel$Int$- (self,10l) on <self:Int> */
4316 /* Covariant cast for argument 0 (i) <10l:Int> isa OTHER */
4317 /* <10l:Int> isa OTHER */
4318 var35 = 1; /* easy <10l:Int> isa OTHER*/
4319 if (unlikely(!var35)) {
4320 var_class_name38 = type_core__Int.name;
4321 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38);
4322 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4323 fatal_exit(1);
4324 }
4325 var39 = self - 10l;
4326 var33 = var39;
4327 goto RET_LABEL34;
4328 RET_LABEL34:(void)0;
4329 }
4330 }
4331 {
4332 { /* Inline kernel$Char$code_point ('a') on <'a':Char> */
4333 var42 = (long)'a';
4334 var40 = var42;
4335 goto RET_LABEL41;
4336 RET_LABEL41:(void)0;
4337 }
4338 }
4339 {
4340 { /* Inline kernel$Int$+ (var33,var40) on <var33:Int> */
4341 /* Covariant cast for argument 0 (i) <var40:Int> isa OTHER */
4342 /* <var40:Int> isa OTHER */
4343 var45 = 1; /* easy <var40:Int> isa OTHER*/
4344 if (unlikely(!var45)) {
4345 var_class_name48 = type_core__Int.name;
4346 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
4347 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4348 fatal_exit(1);
4349 }
4350 var49 = var33 + var40;
4351 var43 = var49;
4352 goto RET_LABEL44;
4353 RET_LABEL44:(void)0;
4354 }
4355 }
4356 {
4357 { /* Inline kernel$Int$code_point (var43) on <var43:Int> */
4358 var52 = (uint32_t)var43;
4359 var50 = var52;
4360 goto RET_LABEL51;
4361 RET_LABEL51:(void)0;
4362 }
4363 }
4364 var = var50;
4365 goto RET_LABEL;
4366 }
4367 RET_LABEL:;
4368 return var;
4369 }
4370 /* method kernel$Int$abs for (self: Int): Int */
4371 long core___core__Int___abs(long self) {
4372 long var /* : Int */;
4373 long var1 /* : Int */;
4374 short int var2 /* : Bool */;
4375 short int var4 /* : Bool */;
4376 int cltype;
4377 int idtype;
4378 const char* var_class_name;
4379 short int var5 /* : Bool */;
4380 long var6 /* : Int */;
4381 long var8 /* : Int */;
4382 {
4383 { /* Inline kernel$Int$>= (self,0l) on <self:Int> */
4384 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4385 /* <0l:Int> isa OTHER */
4386 var4 = 1; /* easy <0l:Int> isa OTHER*/
4387 if (unlikely(!var4)) {
4388 var_class_name = type_core__Int.name;
4389 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4390 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
4391 fatal_exit(1);
4392 }
4393 var5 = self >= 0l;
4394 var2 = var5;
4395 goto RET_LABEL3;
4396 RET_LABEL3:(void)0;
4397 }
4398 }
4399 if (var2){
4400 var1 = self;
4401 } else {
4402 {
4403 { /* Inline kernel$Int$unary - (self) on <self:Int> */
4404 var8 = -self;
4405 var6 = var8;
4406 goto RET_LABEL7;
4407 RET_LABEL7:(void)0;
4408 }
4409 }
4410 var1 = var6;
4411 }
4412 var = var1;
4413 goto RET_LABEL;
4414 RET_LABEL:;
4415 return var;
4416 }
4417 /* method kernel$Char$object_id for (self: Char): Int */
4418 long core___core__Char___Object__object_id(uint32_t self) {
4419 long var /* : Int */;
4420 long var1 /* : Int */;
4421 var1 = (long)self;
4422 var = var1;
4423 goto RET_LABEL;
4424 RET_LABEL:;
4425 return var;
4426 }
4427 /* method kernel$Char$object_id for (self: Object): Int */
4428 long VIRTUAL_core___core__Char___Object__object_id(val* self) {
4429 long var /* : Int */;
4430 long var1 /* : Int */;
4431 uint32_t var3 /* : Char */;
4432 long var4 /* : Int */;
4433 { /* Inline kernel$Char$object_id (self) on <self:Object(Char)> */
4434 var3 = (uint32_t)((long)(self)>>2);
4435 var4 = (long)var3;
4436 var1 = var4;
4437 goto RET_LABEL2;
4438 RET_LABEL2:(void)0;
4439 }
4440 var = var1;
4441 RET_LABEL:;
4442 return var;
4443 }
4444 /* method kernel$Char$hash for (self: Char): Int */
4445 long core___core__Char___Object__hash(uint32_t self) {
4446 long var /* : Int */;
4447 long var1 /* : Int */;
4448 long var3 /* : Int */;
4449 {
4450 { /* Inline kernel$Char$code_point (self) on <self:Char> */
4451 var3 = (long)self;
4452 var1 = var3;
4453 goto RET_LABEL2;
4454 RET_LABEL2:(void)0;
4455 }
4456 }
4457 var = var1;
4458 goto RET_LABEL;
4459 RET_LABEL:;
4460 return var;
4461 }
4462 /* method kernel$Char$hash for (self: Object): Int */
4463 long VIRTUAL_core___core__Char___Object__hash(val* self) {
4464 long var /* : Int */;
4465 long var1 /* : Int */;
4466 uint32_t var2 /* : Char */;
4467 var2 = (uint32_t)((long)(self)>>2);
4468 var1 = core___core__Char___Object__hash(var2);
4469 var = var1;
4470 RET_LABEL:;
4471 return var;
4472 }
4473 /* method kernel$Char$== for (self: Char, nullable Object): Bool */
4474 short int core___core__Char___Object___61d_61d(uint32_t self, val* p0) {
4475 short int var /* : Bool */;
4476 short int var1 /* : Bool */;
4477 uint32_t var2 /* : Char */;
4478 if ((p0 != NULL) && (((long)p0&3) == 2)) {
4479 var2 = (uint32_t)((long)(p0)>>2);
4480 var1 = var2 == self;
4481 } else var1 = 0;
4482 var = var1;
4483 goto RET_LABEL;
4484 RET_LABEL:;
4485 return var;
4486 }
4487 /* method kernel$Char$== for (self: Object, nullable Object): Bool */
4488 short int VIRTUAL_core___core__Char___Object___61d_61d(val* self, val* p0) {
4489 short int var /* : Bool */;
4490 short int var1 /* : Bool */;
4491 short int var3 /* : Bool */;
4492 { /* Inline kernel$Char$== (self,p0) on <self:Object(Char)> */
4493 var3 = self == p0;
4494 var1 = var3;
4495 goto RET_LABEL2;
4496 RET_LABEL2:(void)0;
4497 }
4498 var = var1;
4499 RET_LABEL:;
4500 return var;
4501 }
4502 /* method kernel$Char$!= for (self: Char, nullable Object): Bool */
4503 short int core___core__Char___Object___33d_61d(uint32_t self, val* p0) {
4504 short int var /* : Bool */;
4505 short int var1 /* : Bool */;
4506 uint32_t var2 /* : Char */;
4507 short int var3 /* : Bool */;
4508 if ((p0 != NULL) && (((long)p0&3) == 2)) {
4509 var2 = (uint32_t)((long)(p0)>>2);
4510 var1 = var2 == self;
4511 } else var1 = 0;
4512 var3 = !var1;
4513 var = var3;
4514 goto RET_LABEL;
4515 RET_LABEL:;
4516 return var;
4517 }
4518 /* method kernel$Char$!= for (self: Object, nullable Object): Bool */
4519 short int VIRTUAL_core___core__Char___Object___33d_61d(val* self, val* p0) {
4520 short int var /* : Bool */;
4521 short int var1 /* : Bool */;
4522 short int var3 /* : Bool */;
4523 short int var4 /* : Bool */;
4524 { /* Inline kernel$Char$!= (self,p0) on <self:Object(Char)> */
4525 var3 = self == p0;
4526 var4 = !var3;
4527 var1 = var4;
4528 goto RET_LABEL2;
4529 RET_LABEL2:(void)0;
4530 }
4531 var = var1;
4532 RET_LABEL:;
4533 return var;
4534 }
4535 /* method kernel$Char$<= for (self: Char, Char): Bool */
4536 short int core___core__Char___Comparable___60d_61d(uint32_t self, uint32_t p0) {
4537 short int var /* : Bool */;
4538 short int var1 /* : Bool */;
4539 int cltype;
4540 int idtype;
4541 const char* var_class_name;
4542 short int var2 /* : Bool */;
4543 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
4544 /* <p0:Char> isa OTHER */
4545 var1 = 1; /* easy <p0:Char> isa OTHER*/
4546 if (unlikely(!var1)) {
4547 var_class_name = type_core__Char.name;
4548 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4549 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 913);
4550 fatal_exit(1);
4551 }
4552 var2 = self <= p0;
4553 var = var2;
4554 goto RET_LABEL;
4555 RET_LABEL:;
4556 return var;
4557 }
4558 /* method kernel$Char$<= for (self: Comparable, Comparable): Bool */
4559 short int VIRTUAL_core___core__Char___Comparable___60d_61d(val* self, val* p0) {
4560 short int var /* : Bool */;
4561 short int var1 /* : Bool */;
4562 short int var3 /* : Bool */;
4563 int cltype;
4564 int idtype;
4565 const struct type* type_struct;
4566 const char* var_class_name;
4567 uint32_t var4 /* : Char */;
4568 uint32_t var5 /* : Char */;
4569 short int var6 /* : Bool */;
4570 { /* Inline kernel$Char$<= (self,p0) on <self:Comparable(Char)> */
4571 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
4572 /* <p0:Comparable> isa OTHER */
4573 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
4574 cltype = type_struct->color;
4575 idtype = type_struct->id;
4576 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
4577 var3 = 0;
4578 } else {
4579 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4580 }
4581 if (unlikely(!var3)) {
4582 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4583 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4584 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 913);
4585 fatal_exit(1);
4586 }
4587 var4 = (uint32_t)((long)(self)>>2);
4588 var5 = (uint32_t)((long)(p0)>>2);
4589 var6 = var4 <= var5;
4590 var1 = var6;
4591 goto RET_LABEL2;
4592 RET_LABEL2:(void)0;
4593 }
4594 var = var1;
4595 RET_LABEL:;
4596 return var;
4597 }
4598 /* method kernel$Char$< for (self: Char, Char): Bool */
4599 short int core___core__Char___Comparable___60d(uint32_t self, uint32_t p0) {
4600 short int var /* : Bool */;
4601 short int var1 /* : Bool */;
4602 int cltype;
4603 int idtype;
4604 const char* var_class_name;
4605 short int var2 /* : Bool */;
4606 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
4607 /* <p0:Char> isa OTHER */
4608 var1 = 1; /* easy <p0:Char> isa OTHER*/
4609 if (unlikely(!var1)) {
4610 var_class_name = type_core__Char.name;
4611 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4612 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 914);
4613 fatal_exit(1);
4614 }
4615 var2 = self < p0;
4616 var = var2;
4617 goto RET_LABEL;
4618 RET_LABEL:;
4619 return var;
4620 }
4621 /* method kernel$Char$< for (self: Comparable, Comparable): Bool */
4622 short int VIRTUAL_core___core__Char___Comparable___60d(val* self, val* p0) {
4623 short int var /* : Bool */;
4624 short int var1 /* : Bool */;
4625 short int var3 /* : Bool */;
4626 int cltype;
4627 int idtype;
4628 const struct type* type_struct;
4629 const char* var_class_name;
4630 uint32_t var4 /* : Char */;
4631 uint32_t var5 /* : Char */;
4632 short int var6 /* : Bool */;
4633 { /* Inline kernel$Char$< (self,p0) on <self:Comparable(Char)> */
4634 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
4635 /* <p0:Comparable> isa OTHER */
4636 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
4637 cltype = type_struct->color;
4638 idtype = type_struct->id;
4639 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
4640 var3 = 0;
4641 } else {
4642 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4643 }
4644 if (unlikely(!var3)) {
4645 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4646 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4647 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 914);
4648 fatal_exit(1);
4649 }
4650 var4 = (uint32_t)((long)(self)>>2);
4651 var5 = (uint32_t)((long)(p0)>>2);
4652 var6 = var4 < var5;
4653 var1 = var6;
4654 goto RET_LABEL2;
4655 RET_LABEL2:(void)0;
4656 }
4657 var = var1;
4658 RET_LABEL:;
4659 return var;
4660 }
4661 /* method kernel$Char$>= for (self: Char, Char): Bool */
4662 short int core___core__Char___Comparable___62d_61d(uint32_t self, uint32_t p0) {
4663 short int var /* : Bool */;
4664 short int var1 /* : Bool */;
4665 int cltype;
4666 int idtype;
4667 const char* var_class_name;
4668 short int var2 /* : Bool */;
4669 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
4670 /* <p0:Char> isa OTHER */
4671 var1 = 1; /* easy <p0:Char> isa OTHER*/
4672 if (unlikely(!var1)) {
4673 var_class_name = type_core__Char.name;
4674 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4675 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 915);
4676 fatal_exit(1);
4677 }
4678 var2 = self >= p0;
4679 var = var2;
4680 goto RET_LABEL;
4681 RET_LABEL:;
4682 return var;
4683 }
4684 /* method kernel$Char$>= for (self: Comparable, Comparable): Bool */
4685 short int VIRTUAL_core___core__Char___Comparable___62d_61d(val* self, val* p0) {
4686 short int var /* : Bool */;
4687 short int var1 /* : Bool */;
4688 short int var3 /* : Bool */;
4689 int cltype;
4690 int idtype;
4691 const struct type* type_struct;
4692 const char* var_class_name;
4693 uint32_t var4 /* : Char */;
4694 uint32_t var5 /* : Char */;
4695 short int var6 /* : Bool */;
4696 { /* Inline kernel$Char$>= (self,p0) on <self:Comparable(Char)> */
4697 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
4698 /* <p0:Comparable> isa OTHER */
4699 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
4700 cltype = type_struct->color;
4701 idtype = type_struct->id;
4702 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
4703 var3 = 0;
4704 } else {
4705 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4706 }
4707 if (unlikely(!var3)) {
4708 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4709 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4710 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 915);
4711 fatal_exit(1);
4712 }
4713 var4 = (uint32_t)((long)(self)>>2);
4714 var5 = (uint32_t)((long)(p0)>>2);
4715 var6 = var4 >= var5;
4716 var1 = var6;
4717 goto RET_LABEL2;
4718 RET_LABEL2:(void)0;
4719 }
4720 var = var1;
4721 RET_LABEL:;
4722 return var;
4723 }
4724 /* method kernel$Char$> for (self: Char, Char): Bool */
4725 short int core___core__Char___Comparable___62d(uint32_t self, uint32_t p0) {
4726 short int var /* : Bool */;
4727 short int var1 /* : Bool */;
4728 int cltype;
4729 int idtype;
4730 const char* var_class_name;
4731 short int var2 /* : Bool */;
4732 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
4733 /* <p0:Char> isa OTHER */
4734 var1 = 1; /* easy <p0:Char> isa OTHER*/
4735 if (unlikely(!var1)) {
4736 var_class_name = type_core__Char.name;
4737 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4738 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 916);
4739 fatal_exit(1);
4740 }
4741 var2 = self > p0;
4742 var = var2;
4743 goto RET_LABEL;
4744 RET_LABEL:;
4745 return var;
4746 }
4747 /* method kernel$Char$> for (self: Comparable, Comparable): Bool */
4748 short int VIRTUAL_core___core__Char___Comparable___62d(val* self, val* p0) {
4749 short int var /* : Bool */;
4750 short int var1 /* : Bool */;
4751 short int var3 /* : Bool */;
4752 int cltype;
4753 int idtype;
4754 const struct type* type_struct;
4755 const char* var_class_name;
4756 uint32_t var4 /* : Char */;
4757 uint32_t var5 /* : Char */;
4758 short int var6 /* : Bool */;
4759 { /* Inline kernel$Char$> (self,p0) on <self:Comparable(Char)> */
4760 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
4761 /* <p0:Comparable> isa OTHER */
4762 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
4763 cltype = type_struct->color;
4764 idtype = type_struct->id;
4765 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
4766 var3 = 0;
4767 } else {
4768 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4769 }
4770 if (unlikely(!var3)) {
4771 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4772 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4773 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 916);
4774 fatal_exit(1);
4775 }
4776 var4 = (uint32_t)((long)(self)>>2);
4777 var5 = (uint32_t)((long)(p0)>>2);
4778 var6 = var4 > var5;
4779 var1 = var6;
4780 goto RET_LABEL2;
4781 RET_LABEL2:(void)0;
4782 }
4783 var = var1;
4784 RET_LABEL:;
4785 return var;
4786 }
4787 /* method kernel$Char$successor for (self: Char, Int): Char */
4788 uint32_t core___core__Char___Discrete__successor(uint32_t self, long p0) {
4789 uint32_t var /* : Char */;
4790 uint32_t var1 /* : Char */;
4791 var1 = self + p0;
4792 var = var1;
4793 goto RET_LABEL;
4794 RET_LABEL:;
4795 return var;
4796 }
4797 /* method kernel$Char$successor for (self: Discrete, Int): Discrete */
4798 val* VIRTUAL_core___core__Char___Discrete__successor(val* self, long p0) {
4799 val* var /* : Discrete */;
4800 uint32_t var1 /* : Char */;
4801 uint32_t var3 /* : Char */;
4802 uint32_t var4 /* : Char */;
4803 val* var5 /* : Discrete */;
4804 { /* Inline kernel$Char$successor (self,p0) on <self:Discrete(Char)> */
4805 var3 = (uint32_t)((long)(self)>>2);
4806 var4 = var3 + p0;
4807 var1 = var4;
4808 goto RET_LABEL2;
4809 RET_LABEL2:(void)0;
4810 }
4811 var5 = (val*)((long)(var1)<<2|2);
4812 var = var5;
4813 RET_LABEL:;
4814 return var;
4815 }
4816 /* method kernel$Char$distance for (self: Char, Char): Int */
4817 long core___core__Char___Discrete__distance(uint32_t self, uint32_t p0) {
4818 long var /* : Int */;
4819 short int var1 /* : Bool */;
4820 int cltype;
4821 int idtype;
4822 const char* var_class_name;
4823 uint32_t var_c /* var c: Char */;
4824 long var2 /* : Int */;
4825 long var4 /* : Int */;
4826 long var5 /* : Int */;
4827 long var7 /* : Int */;
4828 long var8 /* : Int */;
4829 short int var10 /* : Bool */;
4830 int cltype11;
4831 int idtype12;
4832 const char* var_class_name13;
4833 long var14 /* : Int */;
4834 long var_d /* var d: Int */;
4835 short int var15 /* : Bool */;
4836 short int var17 /* : Bool */;
4837 int cltype18;
4838 int idtype19;
4839 const char* var_class_name20;
4840 short int var21 /* : Bool */;
4841 long var22 /* : Int */;
4842 long var24 /* : Int */;
4843 /* Covariant cast for argument 0 (c) <p0:Char> isa OTHER */
4844 /* <p0:Char> isa OTHER */
4845 var1 = 1; /* easy <p0:Char> isa OTHER*/
4846 if (unlikely(!var1)) {
4847 var_class_name = type_core__Char.name;
4848 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4849 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 921);
4850 fatal_exit(1);
4851 }
4852 var_c = p0;
4853 {
4854 { /* Inline kernel$Char$code_point (self) on <self:Char> */
4855 var4 = (long)self;
4856 var2 = var4;
4857 goto RET_LABEL3;
4858 RET_LABEL3:(void)0;
4859 }
4860 }
4861 {
4862 { /* Inline kernel$Char$code_point (var_c) on <var_c:Char> */
4863 var7 = (long)var_c;
4864 var5 = var7;
4865 goto RET_LABEL6;
4866 RET_LABEL6:(void)0;
4867 }
4868 }
4869 {
4870 { /* Inline kernel$Int$- (var2,var5) on <var2:Int> */
4871 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
4872 /* <var5:Int> isa OTHER */
4873 var10 = 1; /* easy <var5:Int> isa OTHER*/
4874 if (unlikely(!var10)) {
4875 var_class_name13 = type_core__Int.name;
4876 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
4877 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4878 fatal_exit(1);
4879 }
4880 var14 = var2 - var5;
4881 var8 = var14;
4882 goto RET_LABEL9;
4883 RET_LABEL9:(void)0;
4884 }
4885 }
4886 var_d = var8;
4887 {
4888 { /* Inline kernel$Int$>= (var_d,0l) on <var_d:Int> */
4889 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4890 /* <0l:Int> isa OTHER */
4891 var17 = 1; /* easy <0l:Int> isa OTHER*/
4892 if (unlikely(!var17)) {
4893 var_class_name20 = type_core__Int.name;
4894 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
4895 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
4896 fatal_exit(1);
4897 }
4898 var21 = var_d >= 0l;
4899 var15 = var21;
4900 goto RET_LABEL16;
4901 RET_LABEL16:(void)0;
4902 }
4903 }
4904 if (var15){
4905 var = var_d;
4906 goto RET_LABEL;
4907 } else {
4908 {
4909 { /* Inline kernel$Int$unary - (var_d) on <var_d:Int> */
4910 var24 = -var_d;
4911 var22 = var24;
4912 goto RET_LABEL23;
4913 RET_LABEL23:(void)0;
4914 }
4915 }
4916 var = var22;
4917 goto RET_LABEL;
4918 }
4919 RET_LABEL:;
4920 return var;
4921 }
4922 /* method kernel$Char$distance for (self: Discrete, Discrete): Int */
4923 long VIRTUAL_core___core__Char___Discrete__distance(val* self, val* p0) {
4924 long var /* : Int */;
4925 long var1 /* : Int */;
4926 uint32_t var2 /* : Char */;
4927 uint32_t var3 /* : Char */;
4928 var2 = (uint32_t)((long)(self)>>2);
4929 var3 = (uint32_t)((long)(p0)>>2);
4930 var1 = core___core__Char___Discrete__distance(var2, var3);
4931 var = var1;
4932 RET_LABEL:;
4933 return var;
4934 }
4935 /* method kernel$Char$to_i for (self: Char): Int */
4936 long core___core__Char___to_i(uint32_t self) {
4937 long var /* : Int */;
4938 short int var1 /* : Bool */;
4939 short int var3 /* : Bool */;
4940 long var4 /* : Int */;
4941 long var6 /* : Int */;
4942 short int var7 /* : Bool */;
4943 long var8 /* : Int */;
4944 long var10 /* : Int */;
4945 long var11 /* : Int */;
4946 long var13 /* : Int */;
4947 long var14 /* : Int */;
4948 short int var16 /* : Bool */;
4949 int cltype;
4950 int idtype;
4951 const char* var_class_name;
4952 long var17 /* : Int */;
4953 uint32_t var18 /* : Char */;
4954 long var19 /* : Int */;
4955 long var21 /* : Int */;
4956 long var22 /* : Int */;
4957 long var24 /* : Int */;
4958 long var25 /* : Int */;
4959 short int var27 /* : Bool */;
4960 int cltype28;
4961 int idtype29;
4962 const char* var_class_name30;
4963 long var31 /* : Int */;
4964 long var32 /* : Int */;
4965 short int var34 /* : Bool */;
4966 int cltype35;
4967 int idtype36;
4968 const char* var_class_name37;
4969 long var38 /* : Int */;
4970 {
4971 { /* Inline kernel$Char$== (self,'-') on <self:Char> */
4972 var3 = self == '-';
4973 var1 = var3;
4974 goto RET_LABEL2;
4975 RET_LABEL2:(void)0;
4976 }
4977 }
4978 if (var1){
4979 {
4980 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
4981 var6 = -1l;
4982 var4 = var6;
4983 goto RET_LABEL5;
4984 RET_LABEL5:(void)0;
4985 }
4986 }
4987 var = var4;
4988 goto RET_LABEL;
4989 } else {
4990 {
4991 var7 = core___core__Char___is_digit(self);
4992 }
4993 if (var7){
4994 {
4995 { /* Inline kernel$Char$code_point (self) on <self:Char> */
4996 var10 = (long)self;
4997 var8 = var10;
4998 goto RET_LABEL9;
4999 RET_LABEL9:(void)0;
5000 }
5001 }
5002 {
5003 { /* Inline kernel$Char$code_point ('0') on <'0':Char> */
5004 var13 = (long)'0';
5005 var11 = var13;
5006 goto RET_LABEL12;
5007 RET_LABEL12:(void)0;
5008 }
5009 }
5010 {
5011 { /* Inline kernel$Int$- (var8,var11) on <var8:Int> */
5012 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
5013 /* <var11:Int> isa OTHER */
5014 var16 = 1; /* easy <var11:Int> isa OTHER*/
5015 if (unlikely(!var16)) {
5016 var_class_name = type_core__Int.name;
5017 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5018 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5019 fatal_exit(1);
5020 }
5021 var17 = var8 - var11;
5022 var14 = var17;
5023 goto RET_LABEL15;
5024 RET_LABEL15:(void)0;
5025 }
5026 }
5027 var = var14;
5028 goto RET_LABEL;
5029 } else {
5030 {
5031 var18 = core___core__Char___to_lower(self);
5032 }
5033 {
5034 { /* Inline kernel$Char$code_point (var18) on <var18:Char> */
5035 var21 = (long)var18;
5036 var19 = var21;
5037 goto RET_LABEL20;
5038 RET_LABEL20:(void)0;
5039 }
5040 }
5041 {
5042 { /* Inline kernel$Char$code_point ('a') on <'a':Char> */
5043 var24 = (long)'a';
5044 var22 = var24;
5045 goto RET_LABEL23;
5046 RET_LABEL23:(void)0;
5047 }
5048 }
5049 {
5050 { /* Inline kernel$Int$- (var19,var22) on <var19:Int> */
5051 /* Covariant cast for argument 0 (i) <var22:Int> isa OTHER */
5052 /* <var22:Int> isa OTHER */
5053 var27 = 1; /* easy <var22:Int> isa OTHER*/
5054 if (unlikely(!var27)) {
5055 var_class_name30 = type_core__Int.name;
5056 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
5057 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5058 fatal_exit(1);
5059 }
5060 var31 = var19 - var22;
5061 var25 = var31;
5062 goto RET_LABEL26;
5063 RET_LABEL26:(void)0;
5064 }
5065 }
5066 {
5067 { /* Inline kernel$Int$+ (var25,10l) on <var25:Int> */
5068 /* Covariant cast for argument 0 (i) <10l:Int> isa OTHER */
5069 /* <10l:Int> isa OTHER */
5070 var34 = 1; /* easy <10l:Int> isa OTHER*/
5071 if (unlikely(!var34)) {
5072 var_class_name37 = type_core__Int.name;
5073 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
5074 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
5075 fatal_exit(1);
5076 }
5077 var38 = var25 + 10l;
5078 var32 = var38;
5079 goto RET_LABEL33;
5080 RET_LABEL33:(void)0;
5081 }
5082 }
5083 var = var32;
5084 goto RET_LABEL;
5085 }
5086 }
5087 RET_LABEL:;
5088 return var;
5089 }
5090 /* method kernel$Char$ascii for (self: Char): Byte */
5091 unsigned char core___core__Char___ascii(uint32_t self) {
5092 unsigned char var /* : Byte */;
5093 long var1 /* : Int */;
5094 long var3 /* : Int */;
5095 unsigned char var4 /* : Byte */;
5096 unsigned char var6 /* : Byte */;
5097 {
5098 { /* Inline kernel$Char$code_point (self) on <self:Char> */
5099 var3 = (long)self;
5100 var1 = var3;
5101 goto RET_LABEL2;
5102 RET_LABEL2:(void)0;
5103 }
5104 }
5105 {
5106 { /* Inline kernel$Int$to_b (var1) on <var1:Int> */
5107 var6 = (unsigned char)var1;
5108 var4 = var6;
5109 goto RET_LABEL5;
5110 RET_LABEL5:(void)0;
5111 }
5112 }
5113 var = var4;
5114 goto RET_LABEL;
5115 RET_LABEL:;
5116 return var;
5117 }
5118 /* method kernel$Char$code_point for (self: Char): Int */
5119 long core___core__Char___code_point(uint32_t self) {
5120 long var /* : Int */;
5121 long var1 /* : Int */;
5122 var1 = (long)self;
5123 var = var1;
5124 goto RET_LABEL;
5125 RET_LABEL:;
5126 return var;
5127 }
5128 /* method kernel$Char$to_lower for (self: Char): Char */
5129 uint32_t core___core__Char___to_lower(uint32_t self) {
5130 uint32_t var /* : Char */;
5131 short int var1 /* : Bool */;
5132 long var2 /* : Int */;
5133 long var4 /* : Int */;
5134 long var5 /* : Int */;
5135 long var6 /* : Int */;
5136 short int var8 /* : Bool */;
5137 int cltype;
5138 int idtype;
5139 const char* var_class_name;
5140 long var9 /* : Int */;
5141 uint32_t var10 /* : Char */;
5142 uint32_t var12 /* : Char */;
5143 {
5144 var1 = core___core__Char___is_upper(self);
5145 }
5146 if (var1){
5147 {
5148 { /* Inline kernel$Char$code_point (self) on <self:Char> */
5149 var4 = (long)self;
5150 var2 = var4;
5151 goto RET_LABEL3;
5152 RET_LABEL3:(void)0;
5153 }
5154 }
5155 {
5156 var5 = core___core__Char___Discrete__distance('a', 'A');
5157 }
5158 {
5159 { /* Inline kernel$Int$+ (var2,var5) on <var2:Int> */
5160 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
5161 /* <var5:Int> isa OTHER */
5162 var8 = 1; /* easy <var5:Int> isa OTHER*/
5163 if (unlikely(!var8)) {
5164 var_class_name = type_core__Int.name;
5165 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5166 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
5167 fatal_exit(1);
5168 }
5169 var9 = var2 + var5;
5170 var6 = var9;
5171 goto RET_LABEL7;
5172 RET_LABEL7:(void)0;
5173 }
5174 }
5175 {
5176 { /* Inline kernel$Int$code_point (var6) on <var6:Int> */
5177 var12 = (uint32_t)var6;
5178 var10 = var12;
5179 goto RET_LABEL11;
5180 RET_LABEL11:(void)0;
5181 }
5182 }
5183 var = var10;
5184 goto RET_LABEL;
5185 } else {
5186 var = self;
5187 goto RET_LABEL;
5188 }
5189 RET_LABEL:;
5190 return var;
5191 }
5192 /* method kernel$Char$to_upper for (self: Char): Char */
5193 uint32_t core___core__Char___to_upper(uint32_t self) {
5194 uint32_t var /* : Char */;
5195 short int var1 /* : Bool */;
5196 long var2 /* : Int */;
5197 long var4 /* : Int */;
5198 long var5 /* : Int */;
5199 long var6 /* : Int */;
5200 short int var8 /* : Bool */;
5201 int cltype;
5202 int idtype;
5203 const char* var_class_name;
5204 long var9 /* : Int */;
5205 uint32_t var10 /* : Char */;
5206 uint32_t var12 /* : Char */;
5207 {
5208 var1 = core___core__Char___is_lower(self);
5209 }
5210 if (var1){
5211 {
5212 { /* Inline kernel$Char$code_point (self) on <self:Char> */
5213 var4 = (long)self;
5214 var2 = var4;
5215 goto RET_LABEL3;
5216 RET_LABEL3:(void)0;
5217 }
5218 }
5219 {
5220 var5 = core___core__Char___Discrete__distance('a', 'A');
5221 }
5222 {
5223 { /* Inline kernel$Int$- (var2,var5) on <var2:Int> */
5224 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
5225 /* <var5:Int> isa OTHER */
5226 var8 = 1; /* easy <var5:Int> isa OTHER*/
5227 if (unlikely(!var8)) {
5228 var_class_name = type_core__Int.name;
5229 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5230 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
5231 fatal_exit(1);
5232 }
5233 var9 = var2 - var5;
5234 var6 = var9;
5235 goto RET_LABEL7;
5236 RET_LABEL7:(void)0;
5237 }
5238 }
5239 {
5240 { /* Inline kernel$Int$code_point (var6) on <var6:Int> */
5241 var12 = (uint32_t)var6;
5242 var10 = var12;
5243 goto RET_LABEL11;
5244 RET_LABEL11:(void)0;
5245 }
5246 }
5247 var = var10;
5248 goto RET_LABEL;
5249 } else {
5250 var = self;
5251 goto RET_LABEL;
5252 }
5253 RET_LABEL:;
5254 return var;
5255 }
5256 /* method kernel$Char$is_digit for (self: Char): Bool */
5257 short int core___core__Char___is_digit(uint32_t self) {
5258 short int var /* : Bool */;
5259 short int var1 /* : Bool */;
5260 short int var2 /* : Bool */;
5261 short int var4 /* : Bool */;
5262 int cltype;
5263 int idtype;
5264 const char* var_class_name;
5265 short int var5 /* : Bool */;
5266 short int var_ /* var : Bool */;
5267 short int var6 /* : Bool */;
5268 short int var8 /* : Bool */;
5269 int cltype9;
5270 int idtype10;
5271 const char* var_class_name11;
5272 short int var12 /* : Bool */;
5273 {
5274 { /* Inline kernel$Char$>= (self,'0') on <self:Char> */
5275 /* Covariant cast for argument 0 (i) <'0':Char> isa OTHER */
5276 /* <'0':Char> isa OTHER */
5277 var4 = 1; /* easy <'0':Char> isa OTHER*/
5278 if (unlikely(!var4)) {
5279 var_class_name = type_core__Char.name;
5280 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5281 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 915);
5282 fatal_exit(1);
5283 }
5284 var5 = self >= '0';
5285 var2 = var5;
5286 goto RET_LABEL3;
5287 RET_LABEL3:(void)0;
5288 }
5289 }
5290 var_ = var2;
5291 if (var2){
5292 {
5293 { /* Inline kernel$Char$<= (self,'9') on <self:Char> */
5294 /* Covariant cast for argument 0 (i) <'9':Char> isa OTHER */
5295 /* <'9':Char> isa OTHER */
5296 var8 = 1; /* easy <'9':Char> isa OTHER*/
5297 if (unlikely(!var8)) {
5298 var_class_name11 = type_core__Char.name;
5299 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
5300 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 913);
5301 fatal_exit(1);
5302 }
5303 var12 = self <= '9';
5304 var6 = var12;
5305 goto RET_LABEL7;
5306 RET_LABEL7:(void)0;
5307 }
5308 }
5309 var1 = var6;
5310 } else {
5311 var1 = var_;
5312 }
5313 var = var1;
5314 goto RET_LABEL;
5315 RET_LABEL:;
5316 return var;
5317 }
5318 /* method kernel$Char$is_lower for (self: Char): Bool */
5319 short int core___core__Char___is_lower(uint32_t self) {
5320 short int var /* : Bool */;
5321 short int var1 /* : Bool */;
5322 short int var2 /* : Bool */;
5323 short int var4 /* : Bool */;
5324 int cltype;
5325 int idtype;
5326 const char* var_class_name;
5327 short int var5 /* : Bool */;
5328 short int var_ /* var : Bool */;
5329 short int var6 /* : Bool */;
5330 short int var8 /* : Bool */;
5331 int cltype9;
5332 int idtype10;
5333 const char* var_class_name11;
5334 short int var12 /* : Bool */;
5335 {
5336 { /* Inline kernel$Char$>= (self,'a') on <self:Char> */
5337 /* Covariant cast for argument 0 (i) <'a':Char> isa OTHER */
5338 /* <'a':Char> isa OTHER */
5339 var4 = 1; /* easy <'a':Char> isa OTHER*/
5340 if (unlikely(!var4)) {
5341 var_class_name = type_core__Char.name;
5342 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5343 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 915);
5344 fatal_exit(1);
5345 }
5346 var5 = self >= 'a';
5347 var2 = var5;
5348 goto RET_LABEL3;
5349 RET_LABEL3:(void)0;
5350 }
5351 }
5352 var_ = var2;
5353 if (var2){
5354 {
5355 { /* Inline kernel$Char$<= (self,'z') on <self:Char> */
5356 /* Covariant cast for argument 0 (i) <'z':Char> isa OTHER */
5357 /* <'z':Char> isa OTHER */
5358 var8 = 1; /* easy <'z':Char> isa OTHER*/
5359 if (unlikely(!var8)) {
5360 var_class_name11 = type_core__Char.name;
5361 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
5362 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 913);
5363 fatal_exit(1);
5364 }
5365 var12 = self <= 'z';
5366 var6 = var12;
5367 goto RET_LABEL7;
5368 RET_LABEL7:(void)0;
5369 }
5370 }
5371 var1 = var6;
5372 } else {
5373 var1 = var_;
5374 }
5375 var = var1;
5376 goto RET_LABEL;
5377 RET_LABEL:;
5378 return var;
5379 }
5380 /* method kernel$Char$is_upper for (self: Char): Bool */
5381 short int core___core__Char___is_upper(uint32_t self) {
5382 short int var /* : Bool */;
5383 short int var1 /* : Bool */;
5384 short int var2 /* : Bool */;
5385 short int var4 /* : Bool */;
5386 int cltype;
5387 int idtype;
5388 const char* var_class_name;
5389 short int var5 /* : Bool */;
5390 short int var_ /* var : Bool */;
5391 short int var6 /* : Bool */;
5392 short int var8 /* : Bool */;
5393 int cltype9;
5394 int idtype10;
5395 const char* var_class_name11;
5396 short int var12 /* : Bool */;
5397 {
5398 { /* Inline kernel$Char$>= (self,'A') on <self:Char> */
5399 /* Covariant cast for argument 0 (i) <'A':Char> isa OTHER */
5400 /* <'A':Char> isa OTHER */
5401 var4 = 1; /* easy <'A':Char> isa OTHER*/
5402 if (unlikely(!var4)) {
5403 var_class_name = type_core__Char.name;
5404 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5405 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 915);
5406 fatal_exit(1);
5407 }
5408 var5 = self >= 'A';
5409 var2 = var5;
5410 goto RET_LABEL3;
5411 RET_LABEL3:(void)0;
5412 }
5413 }
5414 var_ = var2;
5415 if (var2){
5416 {
5417 { /* Inline kernel$Char$<= (self,'Z') on <self:Char> */
5418 /* Covariant cast for argument 0 (i) <'Z':Char> isa OTHER */
5419 /* <'Z':Char> isa OTHER */
5420 var8 = 1; /* easy <'Z':Char> isa OTHER*/
5421 if (unlikely(!var8)) {
5422 var_class_name11 = type_core__Char.name;
5423 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
5424 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 913);
5425 fatal_exit(1);
5426 }
5427 var12 = self <= 'Z';
5428 var6 = var12;
5429 goto RET_LABEL7;
5430 RET_LABEL7:(void)0;
5431 }
5432 }
5433 var1 = var6;
5434 } else {
5435 var1 = var_;
5436 }
5437 var = var1;
5438 goto RET_LABEL;
5439 RET_LABEL:;
5440 return var;
5441 }
5442 /* method kernel$Char$is_whitespace for (self: Char): Bool */
5443 short int core___core__Char___is_whitespace(uint32_t self) {
5444 short int var /* : Bool */;
5445 long var1 /* : Int */;
5446 long var3 /* : Int */;
5447 long var_i /* var i: Int */;
5448 short int var4 /* : Bool */;
5449 short int var5 /* : Bool */;
5450 short int var7 /* : Bool */;
5451 int cltype;
5452 int idtype;
5453 const char* var_class_name;
5454 short int var8 /* : Bool */;
5455 short int var_ /* var : Bool */;
5456 short int var9 /* : Bool */;
5457 short int var11 /* : Bool */;
5458 {
5459 { /* Inline kernel$Char$code_point (self) on <self:Char> */
5460 var3 = (long)self;
5461 var1 = var3;
5462 goto RET_LABEL2;
5463 RET_LABEL2:(void)0;
5464 }
5465 }
5466 var_i = var1;
5467 {
5468 { /* Inline kernel$Int$<= (var_i,32l) on <var_i:Int> */
5469 /* Covariant cast for argument 0 (i) <32l:Int> isa OTHER */
5470 /* <32l:Int> isa OTHER */
5471 var7 = 1; /* easy <32l:Int> isa OTHER*/
5472 if (unlikely(!var7)) {
5473 var_class_name = type_core__Int.name;
5474 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5475 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
5476 fatal_exit(1);
5477 }
5478 var8 = var_i <= 32l;
5479 var5 = var8;
5480 goto RET_LABEL6;
5481 RET_LABEL6:(void)0;
5482 }
5483 }
5484 var_ = var5;
5485 if (var5){
5486 var4 = var_;
5487 } else {
5488 {
5489 { /* Inline kernel$Int$== (var_i,127l) on <var_i:Int> */
5490 var11 = var_i == 127l;
5491 var9 = var11;
5492 goto RET_LABEL10;
5493 RET_LABEL10:(void)0;
5494 }
5495 }
5496 var4 = var9;
5497 }
5498 var = var4;
5499 goto RET_LABEL;
5500 RET_LABEL:;
5501 return var;
5502 }
5503 /* method kernel$Pointer$address_is_null for (self: Pointer): Bool */
5504 short int core___core__Pointer___address_is_null(val* self) {
5505 short int var /* : Bool */;
5506 short int var1 /* : Bool */;
5507 void* var2 /* : Pointer for extern */;
5508 var2 = ((struct instance_core__Pointer*)self)->value; /* unboxing Pointer */
5509 var1 = core__kernel___Pointer_address_is_null___impl(var2);
5510 var = var1;
5511 goto RET_LABEL;
5512 RET_LABEL:;
5513 return var;
5514 }
5515 /* method kernel$Pointer$free for (self: Pointer) */
5516 void core___core__Pointer___free(val* self) {
5517 void* var /* : Pointer for extern */;
5518 var = ((struct instance_core__Pointer*)self)->value; /* unboxing Pointer */
5519 core__kernel___Pointer_free___impl(var);
5520 RET_LABEL:;
5521 }
5522 /* method kernel$Pointer$hash for (self: Pointer): Int */
5523 long core___core__Pointer___Object__hash(val* self) {
5524 long var /* : Int */;
5525 long var1 /* : Int */;
5526 void* var2 /* : Pointer for extern */;
5527 var2 = ((struct instance_core__Pointer*)self)->value; /* unboxing Pointer */
5528 var1 = core__kernel___Pointer_hash___impl(var2);
5529 var = var1;
5530 goto RET_LABEL;
5531 RET_LABEL:;
5532 return var;
5533 }
5534 /* method kernel$Pointer$== for (self: Pointer, nullable Object): Bool */
5535 short int core___core__Pointer___Object___61d_61d(val* self, val* p0) {
5536 short int var /* : Bool */;
5537 val* var_o /* var o: nullable Object */;
5538 short int var1 /* : Bool */;
5539 short int var2 /* : Bool */;
5540 int cltype;
5541 int idtype;
5542 short int var_ /* var : Bool */;
5543 short int var3 /* : Bool */;
5544 short int var5 /* : Bool */;
5545 void* var6 /* : Pointer for extern */;
5546 void* var7 /* : Pointer for extern */;
5547 var_o = p0;
5548 /* <var_o:nullable Object> isa Pointer */
5549 cltype = type_core__Pointer.color;
5550 idtype = type_core__Pointer.id;
5551 if(var_o == NULL) {
5552 var2 = 0;
5553 } else {
5554 if(cltype >= (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->table_size) {
5555 var2 = 0;
5556 } else {
5557 var2 = (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->type_table[cltype] == idtype;
5558 }
5559 }
5560 var_ = var2;
5561 if (var2){
5562 {
5563 { /* Inline kernel$Pointer$native_equals (self,var_o) on <self:Pointer> */
5564 var6 = ((struct instance_core__Pointer*)self)->value; /* unboxing Pointer */
5565 var7 = ((struct instance_core__Pointer*)var_o)->value; /* unboxing nullable Object */
5566 var5 = core__kernel___Pointer_native_equals___impl(var6, var7);
5567 var3 = var5;
5568 goto RET_LABEL4;
5569 RET_LABEL4:(void)0;
5570 }
5571 }
5572 var1 = var3;
5573 } else {
5574 var1 = var_;
5575 }
5576 var = var1;
5577 goto RET_LABEL;
5578 RET_LABEL:;
5579 return var;
5580 }
5581 /* method kernel$Pointer$native_equals for (self: Pointer, Pointer): Bool */
5582 short int core___core__Pointer___native_equals(val* self, val* p0) {
5583 short int var /* : Bool */;
5584 short int var1 /* : Bool */;
5585 void* var2 /* : Pointer for extern */;
5586 void* var3 /* : Pointer for extern */;
5587 var2 = ((struct instance_core__Pointer*)self)->value; /* unboxing Pointer */
5588 var3 = ((struct instance_core__Pointer*)p0)->value; /* unboxing Pointer */
5589 var1 = core__kernel___Pointer_native_equals___impl(var2, var3);
5590 var = var1;
5591 goto RET_LABEL;
5592 RET_LABEL:;
5593 return var;
5594 }