blob: 13f4aac59754bb32195895e454225a9c2d3d17d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
|
---------------------------------------------------------------------------
-- PrelGHC.hi-boot
--
-- This hand-written interface file allows you to bring into scope the
-- primitive operations and types that GHC knows about.
---------------------------------------------------------------------------
__interface "rts" PrelGHC 1 0 where
__export PrelGHC
ZLzmzgZR -- (->)
CCallable
CReturnable
-- Magical assert thingy
assert
-- constructor tags
tagToEnumzh
getTagzh
dataToTagzh
-- I/O primitives
RealWorld
realWorldzh
Statezh
-- Concurrency primitives
ThreadIdzh
myThreadIdzh
forkzh
yieldzh
killThreadzh
blockAsyncExceptionszh
unblockAsyncExceptionszh
delayzh
waitReadzh
waitWritezh
-- MVars
MVarzh
sameMVarzh
newMVarzh
takeMVarzh
putMVarzh
tryTakeMVarzh
isEmptyMVarzh
-- Parallel
seqzh
parzh
parGlobalzh
parLocalzh
parAtzh
parAtAbszh
parAtRelzh
parAtForNowzh
-- Character Type
Charzh
gtCharzh
geCharzh
eqCharzh
neCharzh
ltCharzh
leCharzh
ordzh
chrzh
-- Int Type
Intzh
zgzh
zgzezh
zezezh
zszezh
zlzh
zlzezh
zpzh
zmzh
ztzh
quotIntzh
remIntzh
gcdIntzh
negateIntzh
iShiftLzh
iShiftRAzh
iShiftRLzh
addIntCzh
subIntCzh
mulIntCzh
Wordzh
gtWordzh
geWordzh
eqWordzh
neWordzh
ltWordzh
leWordzh
quotWordzh
remWordzh
andzh
orzh
notzh
xorzh
shiftLzh
-- shiftRAzh
shiftRLzh
int2Wordzh
word2Intzh
Word64zh
Int64zh
Addrzh
gtAddrzh
geAddrzh
eqAddrzh
neAddrzh
ltAddrzh
leAddrzh
int2Addrzh
addr2Intzh
Floatzh
gtFloatzh
geFloatzh
eqFloatzh
neFloatzh
ltFloatzh
leFloatzh
plusFloatzh
minusFloatzh
timesFloatzh
divideFloatzh
negateFloatzh
float2Intzh
int2Floatzh
expFloatzh
logFloatzh
sqrtFloatzh
sinFloatzh
cosFloatzh
tanFloatzh
asinFloatzh
acosFloatzh
atanFloatzh
sinhFloatzh
coshFloatzh
tanhFloatzh
powerFloatzh
decodeFloatzh
Doublezh
zgzhzh
zgzezhzh
zezezhzh
zszezhzh
zlzhzh
zlzezhzh
zpzhzh
zmzhzh
ztzhzh
zszhzh
negateDoublezh
double2Intzh
int2Doublezh
double2Floatzh
float2Doublezh
expDoublezh
logDoublezh
sqrtDoublezh
sinDoublezh
cosDoublezh
tanDoublezh
asinDoublezh
acosDoublezh
atanDoublezh
sinhDoublezh
coshDoublezh
tanhDoublezh
ztztzhzh
decodeDoublezh
cmpIntegerzh
cmpIntegerIntzh
plusIntegerzh
minusIntegerzh
timesIntegerzh
gcdIntegerzh
quotIntegerzh
remIntegerzh
gcdIntegerzh
gcdIntegerIntzh
divExactIntegerzh
quotRemIntegerzh
divModIntegerzh
integer2Intzh
integer2Wordzh
int2Integerzh
word2Integerzh
integerToInt64zh
integerToWord64zh
int64ToIntegerzh
word64ToIntegerzh
Arrayzh
ByteArrayzh
MutableArrayzh
MutableByteArrayzh
sameMutableArrayzh
sameMutableByteArrayzh
newArrayzh
newCharArrayzh
newIntArrayzh
newWordArrayzh
newFloatArrayzh
newDoubleArrayzh
newAddrArrayzh
newStablePtrArrayzh
indexArrayzh
indexCharArrayzh
indexIntArrayzh
indexWordArrayzh
indexFloatArrayzh
indexDoubleArrayzh
indexAddrArrayzh
indexStablePtrArrayzh
indexInt64Arrayzh
indexWord64Arrayzh
-- indexOffAddrzh
indexCharOffAddrzh
indexIntOffAddrzh
indexWordOffAddrzh
indexAddrOffAddrzh
indexFloatOffAddrzh
indexDoubleOffAddrzh
indexStablePtrOffAddrzh
indexInt64OffAddrzh
indexWord64OffAddrzh
readCharOffAddrzh
readIntOffAddrzh
readWordOffAddrzh
readAddrOffAddrzh
readFloatOffAddrzh
readDoubleOffAddrzh
readStablePtrOffAddrzh
readInt64OffAddrzh
readWord64OffAddrzh
writeCharOffAddrzh
writeIntOffAddrzh
writeWordOffAddrzh
writeAddrOffAddrzh
writeForeignObjOffAddrzh
writeFloatOffAddrzh
writeDoubleOffAddrzh
writeStablePtrOffAddrzh
writeInt64OffAddrzh
writeWord64OffAddrzh
-- indexOffForeignObjzh
indexCharOffForeignObjzh
indexIntOffForeignObjzh
indexWordOffForeignObjzh
indexAddrOffForeignObjzh
indexFloatOffForeignObjzh
indexDoubleOffForeignObjzh
indexStablePtrOffForeignObjzh
indexInt64OffForeignObjzh
indexWord64OffForeignObjzh
writeArrayzh
writeCharArrayzh
writeIntArrayzh
writeWordArrayzh
writeFloatArrayzh
writeDoubleArrayzh
writeAddrArrayzh
writeStablePtrArrayzh
writeInt64Arrayzh
writeWord64Arrayzh
readArrayzh
readCharArrayzh
readIntArrayzh
readWordArrayzh
readFloatArrayzh
readDoubleArrayzh
readAddrArrayzh
readStablePtrArrayzh
readInt64Arrayzh
readWord64Arrayzh
unsafeFreezzeArrayzh -- Note zz in the middle
unsafeFreezzeByteArrayzh -- Ditto
unsafeThawArrayzh
sizzeofByteArrayzh -- Ditto
sizzeofMutableByteArrayzh -- Ditto
MutVarzh
newMutVarzh
readMutVarzh
writeMutVarzh
sameMutVarzh
catchzh
raisezh
Weakzh
mkWeakzh
deRefWeakzh
finalizzeWeakzh
ForeignObjzh
mkForeignObjzh
writeForeignObjzh
foreignObjToAddrzh
touchzh
StablePtrzh
makeStablePtrzh
deRefStablePtrzh
eqStablePtrzh
StableNamezh
makeStableNamezh
eqStableNamezh
stableNameToIntzh
indexPtrOffClosurezh
indexWordOffClosurezh
reallyUnsafePtrEqualityzh
unsafeCoercezh
;
-- Export PrelErr.error, so that others don't have to import PrelErr
__export PrelErr error ;
--------------------------------------------------
instance {CCallable Charzh} = zdfCCallableCharzh;
instance {CCallable Doublezh} = zdfCCallableDoublezh;
instance {CCallable Floatzh} = zdfCCallableFloatzh;
instance {CCallable Intzh} = zdfCCallableIntzh;
instance {CCallable Addrzh} = zdfCCallableAddrzh;
instance {CCallable Int64zh} = zdfCCallableInt64zh;
instance {CCallable Word64zh} = zdfCCallableWord64zh;
instance {CCallable Wordzh} = zdfCCallableWordzh;
instance {CCallable ByteArrayzh} = zdfCCallableByteArrayzh;
instance __forall s => {CCallable (MutableByteArrayzh s)} = zdfCCallableMutableByteArrayzh;
instance {CCallable ForeignObjzh} = zdfCCallableForeignObjzh;
instance __forall s => {CCallable (StablePtrzh s)} = zdfCCallableStablePtrzh;
-- CCallable and CReturnable have kind (Type AnyBox) so that
-- things like Int# can be instances of CCallable.
1 class CCallable a :: ? ;
1 class CReturnable a :: ? ;
1 assert :: __forall a => PrelBase.Bool -> a -> a ;
-- These guys don't really exist:
--
1 zdfCCallableCharzh :: {CCallable Charzh} ;
1 zdfCCallableDoublezh :: {CCallable Doublezh} ;
1 zdfCCallableFloatzh :: {CCallable Floatzh} ;
1 zdfCCallableIntzh :: {CCallable Intzh} ;
1 zdfCCallableAddrzh :: {CCallable Addrzh} ;
1 zdfCCallableInt64zh :: {CCallable Int64zh} ;
1 zdfCCallableWord64zh :: {CCallable Word64zh} ;
1 zdfCCallableWordzh :: {CCallable Wordzh} ;
1 zdfCCallableByteArrayzh :: {CCallable ByteArrayzh} ;
1 zdfCCallableMutableByteArrayzh :: __forall s => {CCallable (MutableByteArrayzh s)} ;
1 zdfCCallableForeignObjzh :: {CCallable ForeignObjzh} ;
1 zdfCCallableStablePtrzh :: __forall a => {CCallable (StablePtrzh a)} ;
|