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