1 // The ILX implementation of PrelGHC
3 .module extern 'PrelBase.dll'
4 .classunion import [.module 'PrelBase.dll']PrelBase_Bool {.alternative 'PrelBase_False' ()
5 .alternative 'PrelBase_True' ()}
6 .assembly extern 'mscorlib' { }
10 .method public static class [.module 'PrelBase.dll']PrelBase_Bool mkBool (bool b) {
13 newdata class [.module 'PrelBase.dll']PrelBase_Bool, PrelBase_False()
16 newdata class [.module 'PrelBase.dll']PrelBase_Bool, PrelBase_True()
19 .method public static int32 IntGcdOp (int32,int32) {
20 ldstr "WARNING: IntGcdOp called (warning! not yet implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
24 .method public static value class PrelGHC_Z1H<int32,int32> IntSubCOp(int32 a,int32 b) {
25 .locals(int32 r, int32 c)
26 ldstr "WARNING: IntSubCOp called (warning! not yet tested properly)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
28 ldarg a ldarg b sub stloc r
29 //c = ((a^r) & (a^b)) >> 31
30 ldloc r ldarg a xor ldarg a ldarg b xor and ldc.i4 31 shr.un stloc c
32 ldloc r ldloc c newobj void value class PrelGHC_Z1H<int32, int32 >::.ctor(!0,!1)
33 ldstr "a = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldarg a call void ['mscorlib']System.Console::WriteLine(int32)
34 ldstr "b = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldarg b call void ['mscorlib']System.Console::WriteLine(int32)
35 ldstr "r = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldloc r call void ['mscorlib']System.Console::WriteLine(int32)
36 ldstr "c = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldloc c call void ['mscorlib']System.Console::WriteLine(int32)
39 .method public static value class PrelGHC_Z1H<int32,int32> IntAddCOp(int32 a,int32 b) {
40 .locals(int32 r, int32 c)
41 ldstr "WARNING: IntAddCOp called (warning! not yet tested properly)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
43 ldarg a ldarg b add stloc r
44 //c = ((a^r) & ~(a^b)) >> 31
45 ldloc r ldarg a xor ldarg a ldarg b xor not and ldc.i4 31 shr.un stloc c
47 ldloc r ldloc c newobj void value class PrelGHC_Z1H<int32, int32 >::.ctor(!0,!1)
48 ldstr "a = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldarg a call void ['mscorlib']System.Console::WriteLine(int32)
49 ldstr "b = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldarg b call void ['mscorlib']System.Console::WriteLine(int32)
50 ldstr "r = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldloc r call void ['mscorlib']System.Console::WriteLine(int32)
51 ldstr "c = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldloc c call void ['mscorlib']System.Console::WriteLine(int32)
55 // TODO: check me!!! test me!!!!
56 .method public static value class PrelGHC_Z1H<int32,int32> IntMulCOp(int32 a,int32 b) {
57 .locals(int64 l, int32 r, int32 c)
59 ldstr "WARNING: IntMulCOp called (warning! not yet tested properly)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
61 //r=(StgInt64)a * (StgInt64)b
67 ldloc l ldc.i8 0x80000000 rem conv.i4 stloc r
68 ldloc l ldc.i8 0x80000000 div conv.i4 stloc c
70 ldloc r ldloc c newobj void value class PrelGHC_Z1H<int32, int32 >::.ctor(!0,!1)
71 ldstr "a = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldarg a call void ['mscorlib']System.Console::WriteLine(int32)
72 ldstr "b = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldarg b call void ['mscorlib']System.Console::WriteLine(int32)
73 ldstr "r = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldloc r call void ['mscorlib']System.Console::WriteLine(int32)
74 ldstr "c = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldloc c call void ['mscorlib']System.Console::WriteLine(int32)
83 'catch'<any,any>( thunk<(func ( /* unit skipped */ ) --> !!0)> f1, thunk<(func (!!1) --> (func ( /* unit skipped */ ) --> !!0))> f2)
85 .locals(!!0 res, !!1 exn)
86 //LOG ldstr "LOG: Entering catch..." call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
90 callfunc () ( /* unit skipped */ ) --> !!0
92 //LOG ldstr "LOG: Leaving catch..." call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
94 } catch [mscorlib]System.Object {
96 // exception of type !!1 should be on the stack??
97 dup ldstr "LOG: CAUGHT! , Exn = " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.Object)
108 ldstr "LOG: CAUGHT! Executing handler..." call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
111 tail. callfunc () (!!1) --> !!0
117 .method public static !!0 'unblockAsyncExceptions'<any>( thunk<(func ( /* unit skipped */ ) --> !!0)> f )
119 //ldstr "WARNING: unblockAsyncExceptions called (warning! not yet implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
122 tail. callfunc () ( /* unit skipped */ ) --> !!0
126 .method public static !!0 'blockAsyncExceptions'<any>( thunk<(func ( /* unit skipped */ ) --> !!0)> f )
128 //ldstr "WARNING: blockAsyncExceptions called (warning! not yet implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
131 tail. callfunc () ( /* unit skipped */ ) --> !!0
137 .method public static !!0 'takeMVar'<any> (class PrelGHC_MVarzh<!!0> mvar)
139 //ldstr "WARNING: takeMVar called (warning! locking not yet implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
140 ldarg mvar ldfld !0 class PrelGHC_MVarzh<!!0>::contents
141 //LOG ldstr "LOG: takeMVar returned: " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) dup call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.Object)
142 //LOG ldstr "LOG: for MVar: " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldarg mvar ldfld int32 class PrelGHC_MVarzh<!!0>::id call void ['mscorlib']System.Console::WriteLine(int32)
147 .method public static void 'putMVar'<any>(class PrelGHC_MVarzh<!!0> mvar ,!!0 v)
149 //ldstr "WARNING: putMVar called (warning! locking not yet implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
150 ldarg mvar ldarg v stfld !0 class PrelGHC_MVarzh<!!0>::contents
152 //LOG ldstr "LOG: putMVar put: " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldarg v call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.Object)
153 //LOG ldstr "LOG: for MVar: " call void ['mscorlib']System.Console::Write(class ['mscorlib']System.String) ldarg mvar ldfld int32 class PrelGHC_MVarzh<!!0>::id call void ['mscorlib']System.Console::WriteLine(int32)
157 // Enter, if (null(Read)) Wait Exit
158 .method public static value class PrelGHC_Z1H<int32, !!0> 'tryTakeMVar'<any>(class PrelGHC_MVarzh<!!0> mvar)
160 ldstr "WARNING: tryTakeMVar called (locking not yet implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
162 ldarg mvar ldfld !0 class PrelGHC_MVarzh<!!0>::contents
163 newobj void value class PrelGHC_Z1H<int32,!!0>::.ctor(!0,!1)
168 // Enter, if (null(Read)) Wait Exit
169 .method public static int32 'tryPutMVar'<any>(class PrelGHC_MVarzh<!!0> mvar, !!0 v)
171 ldstr "WARNING: tryPutMVar called (locking not yet implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
178 .method public static int32 isEmptyMVar<any>(class PrelGHC_MVarzh<!!0> mvar)
180 ldstr "WARNING: isEmptyMVar called (locking not yet implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
186 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> IntegerAddOp(int32, unsigned int8[], int32, unsigned int8[]) {
187 ldstr "WARNING: IntegerAddOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
189 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
193 .method public static int32 IntegerCmpIntOp(int32, unsigned int8[], int32) {
194 ldstr "WARNING: IntegerCmpIntOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
198 .method public static int32 IntegerCmpOp(int32, unsigned int8[], int32, unsigned int8[]) {
199 ldstr "WARNING: IntegerCmpOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
203 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> IntegerSubOp(int32, unsigned int8[], int32, unsigned int8[]) {
204 ldstr "WARNING: IntegerSubOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
206 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
210 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> IntegerMulOp(int32, unsigned int8[], int32, unsigned int8[]) {
211 ldstr "WARNING: IntegerMulOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
213 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
217 .method public static value class PrelGHC_Z3H<int32, unsigned int8[],int32, unsigned int8[]> IntegerQuotRemOp(int32, unsigned int8[], int32, unsigned int8[]) {
218 ldstr "WARNING: IntegerQuotRemOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
219 ldc.i4 0 ldnull ldc.i4 0 ldnull
220 newobj void value class PrelGHC_Z3H<int32, unsigned int8[],int32, unsigned int8[]>::.ctor(!0,!1,!2,!3)
224 .method public static value class PrelGHC_Z3H<int32, unsigned int8[],int32, unsigned int8[]> IntegerDivModOp(int32, unsigned int8[], int32, unsigned int8[]) {
225 ldstr "WARNING: IntegerDivModOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
226 ldc.i4 0 ldnull ldc.i4 0 ldnull
227 newobj void value class PrelGHC_Z3H<int32, unsigned int8[],int32, unsigned int8[]>::.ctor(!0,!1,!2,!3)
230 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> IntegerDivExactOp(int32, unsigned int8[], int32, unsigned int8[]) {
231 ldstr "WARNING: IntegerDivExactOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
233 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
236 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> IntegerQuotOp(int32, unsigned int8[], int32, unsigned int8[]) {
237 ldstr "WARNING: IntegerQuotOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
239 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
242 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> IntegerAndOp(int32, unsigned int8[], int32, unsigned int8[]) {
243 ldstr "WARNING: IntegerAndOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
245 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
249 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> IntegerRemOp(int32, unsigned int8[], int32, unsigned int8[]) {
250 ldstr "WARNING: IntegerRemOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
252 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
257 .method public static int32 Integer2IntOp(int32, unsigned int8[]) {
258 ldstr "WARNING: Integer2IntOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
263 .method public static unsigned int32 Integer2WordOp(int32, unsigned int8[]) {
264 ldstr "WARNING: Integer2WordOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
269 .method public static int64 IntegerToInt64Op(int32, unsigned int8[]) {
270 ldstr "WARNING: IntegerToInt64Op called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
275 .method public static unsigned int64 IntegerToWord64Op(int32, unsigned int8[]) {
276 ldstr "WARNING: IntegerToWord64Op called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
281 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> Int2IntegerOp(int32) {
282 ldstr "WARNING: Integer2IntOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
284 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
288 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> Word2IntegerOp(unsigned int32) {
289 ldstr "WARNING: Word2IntegerOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
291 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
295 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> Word64ToIntegerOp(unsigned int64) {
296 ldstr "WARNING: Word64ToIntegerOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
298 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
302 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> Int64ToIntegerOp(int64) {
303 ldstr "WARNING: Int64ToIntegerOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
305 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
309 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> IntegerOrOp(int32, unsigned int8[], int32, unsigned int8[]) {
310 ldstr "WARNING: IntegerOrOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
312 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
316 .method public static int32 IntegerIntGcdOp(int32, unsigned int8[], int32) {
317 ldstr "WARNING: IntegerOrOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
321 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> IntegerXorOp(int32, unsigned int8[], int32, unsigned int8[]) {
322 ldstr "WARNING: IntegerXorOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
324 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
328 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> IntegerGcdOp(int32, unsigned int8[], int32, unsigned int8[]) {
329 ldstr "WARNING: IntegerGcdOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
331 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
335 .method public static value class PrelGHC_Z1H<int32, unsigned int8[]> IntegerComplementOp(int32, unsigned int8[]) {
336 ldstr "WARNING: IntegerComplementOp called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
338 newobj void value class PrelGHC_Z1H<int32, unsigned int8[]>::.ctor(!0,!1)
342 .method public static value class PrelGHC_Z2H<int32,int32, unsigned int8[]> decodeFloat(float32 f) {
343 ldstr "WARNING: decodeFloat called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
344 ldarg f conv.r8 call float64 [mscorlib]System.Math::Abs(float64) call float64 [mscorlib]System.Math::Log(float64) conv.i4
346 newobj void value class PrelGHC_Z2H<int32,int32, unsigned int8[]>::.ctor(!0,!1,!2)
350 .method public static value class PrelGHC_Z2H<int32,int32, unsigned int8[]> decodeDouble(float64 f) {
351 ldstr "WARNING: decodeDouble called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
352 ldarg f call float64 [mscorlib]System.Math::Abs(float64) call float64 [mscorlib]System.Math::Log(float64) conv.i4
354 newobj void value class PrelGHC_Z2H<int32,int32, unsigned int8[]>::.ctor(!0,!1,!2)
359 .method public static !!0[] newArray<any>(int32 n, !!0 x) {
360 .locals(int32 i, !!0[] res)
381 .method public static int32 dataToTag<any>(!!0 x) {
382 ldstr "WARNING: dataToTag called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
386 .method public static !!0 tagToEnum<any>(int32) {
387 ldstr "WARNING: tagToEnum called (not implemented)" call void ['mscorlib']System.Console::WriteLine(class ['mscorlib']System.String)
394 //--------------------------------------------
397 .class public 'PrelGHC_MVarzh'<any> {
398 .field public !0 contents
399 .field public int32 id
400 .field static public int32 ids
401 .method public rtspecialname specialname instance void .ctor() {
403 ldsfld int32 class PrelGHC_MVarzh::ids
407 stsfld int32 class PrelGHC_MVarzh::ids
408 stfld int32 class PrelGHC_MVarzh<!0>::id
414 .class public 'PrelGHC_StablePtrzh' /* <any> */ {
415 .field public class [mscorlib]System.Object contents
416 .method public rtspecialname specialname instance void .ctor(class [mscorlib]System.Object) {
417 ldarg 0 ldarg 1 stfld class [mscorlib]System.Object class PrelGHC_StablePtrzh::contents
422 .class public 'PrelGHC_StableNamezh' /* <any> */ {
423 .method public rtspecialname specialname instance void .ctor() {
428 .class public 'PrelGHC_Foreignzh' {
429 .field public void * contents
430 .method public rtspecialname specialname instance void .ctor(void *) {
431 ldarg 0 ldarg 1 stfld void * class PrelGHC_Foreignzh::contents
437 .class public 'PrelGHC_Weakzh'<any> {
438 .field public !0 contents
439 .field public thunk<(func ( /* unit skipped */ ) --> class [.module 'PrelBase.dll']PrelBase_Z0T)> _finalizer
440 .method public rtspecialname specialname instance void .ctor(!0 x, thunk<(func ( /* unit skipped */ ) --> class [.module 'PrelBase.dll']PrelBase_Z0T)> f) {
441 ldarg 0 ldarg x stfld !0 class PrelGHC_Weakzh<!0>::contents
442 ldarg 0 ldarg f stfld thunk<(func ( /* unit skipped */ ) --> class [.module 'PrelBase.dll']PrelBase_Z0T)> class PrelGHC_Weakzh<!0>::_finalizer
445 .method public static value class PrelGHC_Z1H<int32,thunk<(func ( /* unit skipped */ ) --> class [.module 'PrelBase.dll']PrelBase_Z0T)>> finalizer<any>(class PrelGHC_Weakzh<!!0>) {
447 ldarg 0 ldfld thunk<(func ( /* unit skipped */ ) --> class [.module 'PrelBase.dll']PrelBase_Z0T)> class PrelGHC_Weakzh<!!0>::_finalizer
448 newobj void value class PrelGHC_Z1H<int32,thunk<(func ( /* unit skipped */ ) --> class [.module 'PrelBase.dll']PrelBase_Z0T)>>::.ctor(!0,!1)
451 .method public static value class PrelGHC_Z1H<int32,!!0> deref<any>(class PrelGHC_Weakzh<!!0>) {
453 ldarg 0 ldfld !0 class PrelGHC_Weakzh<!!0>::contents
454 newobj void value class PrelGHC_Z1H<int32,!!0>::.ctor(!0,!1)
457 .method public static class PrelGHC_Weakzh<!!1> bake<any,any,any>(!!0,!!1 obj,!!2 finalizer) {
459 // TODO: work out how to get finalizer correctly... why is it a type variable anyway?
460 // The unbox below doesn't work in all circumstances because of known problems with
461 // the runtime types ascribed to funtion types (see RAID bug)
462 ldnull // ldarg finalizer unbox.any (func ( /* unit skipped */ ) --> class [.module 'PrelBase.dll']PrelBase_Z0T)
463 newobj void class 'PrelGHC_Weakzh'<!!1>::.ctor(!0 x, (func ( /* unit skipped */ ) --> class [.module 'PrelBase.dll']PrelBase_Z0T))
469 .class public 'PrelGHC_MutVarzh'<any> {
470 .field public !0 contents
471 .method public rtspecialname specialname instance void .ctor(!0) {
472 ldarg 0 ldarg 1 stfld !0 class PrelGHC_MutVarzh<!0>::contents
477 .class public PrelGHC_ZCTCCallable<any> {
480 .class public PrelGHC_BCOzh {
483 .class public PrelGHC_ZCTCReturnable<any> {
487 //------------------------------------------------------------
488 // Builtin Unboxed Tuple Types
490 .class value sealed 'PrelGHC_Z0H' <any> extends ['mscorlib']System.ValueType {
491 .method public rtspecialname specialname instance void .ctor(!0) {
492 ldarg 0 ldarg 1 stfld !0 class PrelGHC_Z0H<!0>::fld0
495 .field public !0 fld0
498 .class value sealed 'PrelGHC_Z1H' <any,any> extends ['mscorlib']System.ValueType {
499 .method public rtspecialname specialname instance void .ctor(!0,!1) {
500 ldarg 0 ldarg 1 stfld !0 class PrelGHC_Z1H<!0,!1>::fld0
501 ldarg 0 ldarg 2 stfld !1 class PrelGHC_Z1H<!0,!1>::fld1
504 .field public !0 fld0
505 .field public !1 fld1
508 .class value sealed 'PrelGHC_Z2H' <any,any,any> extends ['mscorlib']System.ValueType {
509 .method public rtspecialname specialname instance void .ctor(!0,!1,!2) {
510 ldarg 0 ldarg 1 stfld !0 class PrelGHC_Z2H<!0,!1,!2>::fld0
511 ldarg 0 ldarg 2 stfld !1 class PrelGHC_Z2H<!0,!1,!2>::fld1
512 ldarg 0 ldarg 3 stfld !2 class PrelGHC_Z2H<!0,!1,!2>::fld2
515 .field public !0 fld0
516 .field public !1 fld1
517 .field public !2 fld2
520 .class value sealed 'PrelGHC_Z3H' <any,any,any,any> extends ['mscorlib']System.ValueType {
521 .method public rtspecialname specialname instance void .ctor(!0,!1,!2,!3) {
522 ldarg 0 ldarg 1 stfld !0 class PrelGHC_Z3H<!0,!1,!2,!3>::fld0
523 ldarg 0 ldarg 2 stfld !1 class PrelGHC_Z3H<!0,!1,!2,!3>::fld1
524 ldarg 0 ldarg 3 stfld !2 class PrelGHC_Z3H<!0,!1,!2,!3>::fld2
525 ldarg 0 ldarg 4 stfld !3 class PrelGHC_Z3H<!0,!1,!2,!3>::fld3
528 .field public !0 fld0
529 .field public !1 fld1
530 .field public !2 fld2
531 .field public !3 fld3
534 .class value sealed 'PrelGHC_Z4H' <any,any,any,any,any> extends ['mscorlib']System.ValueType {
535 .method public rtspecialname specialname instance void .ctor(!0,!1,!2,!3,!4) {
536 ldarg 0 ldarg 1 stfld !0 class PrelGHC_Z4H<!0,!1,!2,!3,!4>::fld0
537 ldarg 0 ldarg 2 stfld !1 class PrelGHC_Z4H<!0,!1,!2,!3,!4>::fld1
538 ldarg 0 ldarg 3 stfld !2 class PrelGHC_Z4H<!0,!1,!2,!3,!4>::fld2
539 ldarg 0 ldarg 4 stfld !3 class PrelGHC_Z4H<!0,!1,!2,!3,!4>::fld3
540 ldarg 0 ldarg 5 stfld !4 class PrelGHC_Z4H<!0,!1,!2,!3,!4>::fld4
543 .field public !0 fld0
544 .field public !1 fld1
545 .field public !2 fld2
546 .field public !3 fld3
547 .field public !4 fld4
550 .class value sealed 'PrelGHC_Z5H' <any,any,any,any,any,any> extends ['mscorlib']System.ValueType {
551 .method public rtspecialname specialname instance void .ctor(!0,!1,!2,!3,!4,!5) {
552 ldarg 0 ldarg 1 stfld !0 class PrelGHC_Z5H<!0,!1,!2,!3,!4,!5>::fld0
553 ldarg 0 ldarg 2 stfld !1 class PrelGHC_Z5H<!0,!1,!2,!3,!4,!5>::fld1
554 ldarg 0 ldarg 3 stfld !2 class PrelGHC_Z5H<!0,!1,!2,!3,!4,!5>::fld2
555 ldarg 0 ldarg 4 stfld !3 class PrelGHC_Z5H<!0,!1,!2,!3,!4,!5>::fld3
556 ldarg 0 ldarg 5 stfld !4 class PrelGHC_Z5H<!0,!1,!2,!3,!4,!5>::fld4
557 ldarg 0 ldarg 6 stfld !5 class PrelGHC_Z5H<!0,!1,!2,!3,!4,!5>::fld5
560 .field public !0 fld0
561 .field public !1 fld1
562 .field public !2 fld2
563 .field public !3 fld3
564 .field public !4 fld4
565 .field public !5 fld5
568 .class value sealed 'PrelGHC_Z6H' <any,any,any,any,any,any,any> extends ['mscorlib']System.ValueType {
569 .method public rtspecialname specialname instance void .ctor(!0,!1,!2,!3,!4,!5,!6) {
570 ldarg 0 ldarg 1 stfld !0 class PrelGHC_Z6H<!0,!1,!2,!3,!4,!5,!6>::fld0
571 ldarg 0 ldarg 2 stfld !1 class PrelGHC_Z6H<!0,!1,!2,!3,!4,!5,!6>::fld1
572 ldarg 0 ldarg 3 stfld !2 class PrelGHC_Z6H<!0,!1,!2,!3,!4,!5,!6>::fld2
573 ldarg 0 ldarg 4 stfld !3 class PrelGHC_Z6H<!0,!1,!2,!3,!4,!5,!6>::fld3
574 ldarg 0 ldarg 5 stfld !4 class PrelGHC_Z6H<!0,!1,!2,!3,!4,!5,!6>::fld4
575 ldarg 0 ldarg 6 stfld !5 class PrelGHC_Z6H<!0,!1,!2,!3,!4,!5,!6>::fld5
576 ldarg 0 ldarg 7 stfld !6 class PrelGHC_Z6H<!0,!1,!2,!3,!4,!5,!6>::fld6
579 .field public !0 fld0
580 .field public !1 fld1
581 .field public !2 fld2
582 .field public !3 fld3
583 .field public !4 fld4
584 .field public !5 fld5
585 .field public !6 fld6
588 .class value sealed 'PrelGHC_Z7H' <any,any,any,any,any,any,any,any> extends ['mscorlib']System.ValueType {
589 .method public rtspecialname specialname instance void .ctor(!0,!1,!2,!3,!4,!5,!6,!7) {
590 ldarg 0 ldarg 1 stfld !0 class PrelGHC_Z7H<!0,!1,!2,!3,!4,!5,!6,!7>::fld0
591 ldarg 0 ldarg 2 stfld !1 class PrelGHC_Z7H<!0,!1,!2,!3,!4,!5,!6,!7>::fld1
592 ldarg 0 ldarg 3 stfld !2 class PrelGHC_Z7H<!0,!1,!2,!3,!4,!5,!6,!7>::fld2
593 ldarg 0 ldarg 4 stfld !3 class PrelGHC_Z7H<!0,!1,!2,!3,!4,!5,!6,!7>::fld3
594 ldarg 0 ldarg 5 stfld !4 class PrelGHC_Z7H<!0,!1,!2,!3,!4,!5,!6,!7>::fld4
595 ldarg 0 ldarg 6 stfld !5 class PrelGHC_Z7H<!0,!1,!2,!3,!4,!5,!6,!7>::fld5
596 ldarg 0 ldarg 7 stfld !6 class PrelGHC_Z7H<!0,!1,!2,!3,!4,!5,!6,!7>::fld6
597 ldarg 0 ldarg 8 stfld !7 class PrelGHC_Z7H<!0,!1,!2,!3,!4,!5,!6,!7>::fld7
600 .field public !0 fld0
601 .field public !1 fld1
602 .field public !2 fld2
603 .field public !3 fld3
604 .field public !4 fld4
605 .field public !5 fld5
606 .field public !6 fld6
607 .field public !7 fld7
611 // Phew...This is needed by the optimized Haskell library....
612 // - TODO: fill in the rest!
613 .class value sealed 'PrelGHC_Z18H' <any,any,any,any,any,any,any,any,any,any,any,any,any,any,any,any,any,any> extends ['mscorlib']System.ValueType {
614 .method public rtspecialname specialname instance void .ctor(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17) {
615 ldarg 0 ldarg 1 stfld !0 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld0
616 ldarg 0 ldarg 2 stfld !1 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld1
617 ldarg 0 ldarg 3 stfld !2 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld2
618 ldarg 0 ldarg 4 stfld !3 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld3
619 ldarg 0 ldarg 5 stfld !4 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld4
620 ldarg 0 ldarg 6 stfld !5 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld5
621 ldarg 0 ldarg 7 stfld !6 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld6
622 ldarg 0 ldarg 8 stfld !7 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld7
623 ldarg 0 ldarg 9 stfld !8 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld8
624 ldarg 0 ldarg 10 stfld !9 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld9
625 ldarg 0 ldarg 11 stfld !10 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld10
626 ldarg 0 ldarg 12 stfld !11 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld11
627 ldarg 0 ldarg 13 stfld !12 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld12
628 ldarg 0 ldarg 14 stfld !13 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld13
629 ldarg 0 ldarg 15 stfld !14 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld14
630 ldarg 0 ldarg 16 stfld !15 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld15
631 ldarg 0 ldarg 17 stfld !16 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld16
632 ldarg 0 ldarg 18 stfld !17 class PrelGHC_Z18H<!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17>::fld17
635 .field public !0 fld0
636 .field public !1 fld1
637 .field public !2 fld2
638 .field public !3 fld3
639 .field public !4 fld4
640 .field public !5 fld5
641 .field public !6 fld6
642 .field public !7 fld7
643 .field public !8 fld8
644 .field public !9 fld9
645 .field public !10 fld10
646 .field public !11 fld11
647 .field public !12 fld12
648 .field public !13 fld13
649 .field public !14 fld14
650 .field public !15 fld15
651 .field public !16 fld16
652 .field public !17 fld17
656 .classunion '()' extends thunk<class '()'> {