[project @ 2001-08-04 06:11:24 by ken]
[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 "std" 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   plusWordzh
103   minusWordzh
104   timesWordzh
105   quotWordzh
106   remWordzh
107   andzh
108   orzh
109   notzh
110   xorzh
111   shiftLzh
112   shiftRLzh
113   int2Wordzh
114   word2Intzh
115
116   Int64zh
117   Word64zh
118
119   intToInt8zh
120   intToInt16zh
121   intToInt32zh
122   wordToWord8zh
123   wordToWord16zh
124   wordToWord32zh
125
126   Addrzh
127   gtAddrzh
128   geAddrzh
129   eqAddrzh
130   neAddrzh
131   ltAddrzh
132   leAddrzh
133   int2Addrzh
134   addr2Intzh
135
136   Floatzh
137   gtFloatzh
138   geFloatzh
139   eqFloatzh
140   neFloatzh
141   ltFloatzh
142   leFloatzh
143   plusFloatzh
144   minusFloatzh
145   timesFloatzh
146   divideFloatzh
147   negateFloatzh
148   float2Intzh
149   int2Floatzh
150   expFloatzh
151   logFloatzh
152   sqrtFloatzh
153   sinFloatzh
154   cosFloatzh
155   tanFloatzh
156   asinFloatzh
157   acosFloatzh
158   atanFloatzh
159   sinhFloatzh
160   coshFloatzh
161   tanhFloatzh
162   powerFloatzh
163   decodeFloatzh
164
165   Doublezh
166   zgzhzh
167   zgzezhzh
168   zezezhzh
169   zszezhzh
170   zlzhzh
171   zlzezhzh
172   zpzhzh
173   zmzhzh
174   ztzhzh
175   zszhzh
176   negateDoublezh
177   double2Intzh
178   int2Doublezh
179   double2Floatzh
180   float2Doublezh
181   expDoublezh
182   logDoublezh
183   sqrtDoublezh
184   sinDoublezh
185   cosDoublezh
186   tanDoublezh
187   asinDoublezh
188   acosDoublezh
189   atanDoublezh
190   sinhDoublezh
191   coshDoublezh
192   tanhDoublezh
193   ztztzhzh
194   decodeDoublezh
195
196   cmpIntegerzh
197   cmpIntegerIntzh
198   plusIntegerzh
199   minusIntegerzh
200   timesIntegerzh
201   gcdIntegerzh
202   quotIntegerzh
203   remIntegerzh
204   gcdIntegerzh
205   gcdIntegerIntzh
206   divExactIntegerzh
207   quotRemIntegerzh
208   divModIntegerzh
209   integer2Intzh
210   integer2Wordzh
211   int2Integerzh
212   word2Integerzh
213   integerToInt64zh
214   integerToWord64zh
215   int64ToIntegerzh
216   word64ToIntegerzh
217   andIntegerzh
218   orIntegerzh
219   xorIntegerzh
220   complementIntegerzh
221
222   Arrayzh
223   ByteArrayzh
224   MutableArrayzh
225   MutableByteArrayzh
226
227   sameMutableArrayzh
228   sameMutableByteArrayzh
229
230   newArrayzh
231   newByteArrayzh
232
233   indexArrayzh
234   indexCharArrayzh
235   indexWideCharArrayzh
236   indexIntArrayzh
237   indexWordArrayzh
238   indexAddrArrayzh
239   indexFloatArrayzh
240   indexDoubleArrayzh
241   indexStablePtrArrayzh
242   indexInt8Arrayzh
243   indexInt16Arrayzh
244   indexInt32Arrayzh
245   indexInt64Arrayzh
246   indexWord8Arrayzh
247   indexWord16Arrayzh
248   indexWord32Arrayzh
249   indexWord64Arrayzh
250
251   readArrayzh
252   readCharArrayzh
253   readWideCharArrayzh
254   readIntArrayzh
255   readWordArrayzh
256   readAddrArrayzh
257   readFloatArrayzh
258   readDoubleArrayzh
259   readStablePtrArrayzh
260   readInt8Arrayzh
261   readInt16Arrayzh
262   readInt32Arrayzh
263   readInt64Arrayzh
264   readWord8Arrayzh
265   readWord16Arrayzh
266   readWord32Arrayzh
267   readWord64Arrayzh
268
269   writeArrayzh
270   writeCharArrayzh
271   writeWideCharArrayzh
272   writeIntArrayzh
273   writeWordArrayzh
274   writeAddrArrayzh
275   writeFloatArrayzh
276   writeDoubleArrayzh
277   writeStablePtrArrayzh
278   writeInt8Arrayzh
279   writeInt16Arrayzh
280   writeInt32Arrayzh
281   writeInt64Arrayzh
282   writeWord8Arrayzh
283   writeWord16Arrayzh
284   writeWord32Arrayzh
285   writeWord64Arrayzh
286
287   indexCharOffAddrzh
288   indexWideCharOffAddrzh
289   indexIntOffAddrzh
290   indexWordOffAddrzh
291   indexAddrOffAddrzh
292   indexFloatOffAddrzh
293   indexDoubleOffAddrzh
294   indexStablePtrOffAddrzh
295   indexInt8OffAddrzh
296   indexInt16OffAddrzh
297   indexInt32OffAddrzh
298   indexInt64OffAddrzh
299   indexWord8OffAddrzh
300   indexWord16OffAddrzh
301   indexWord32OffAddrzh
302   indexWord64OffAddrzh
303
304   readCharOffAddrzh
305   readWideCharOffAddrzh
306   readIntOffAddrzh
307   readWordOffAddrzh
308   readAddrOffAddrzh
309   readFloatOffAddrzh
310   readDoubleOffAddrzh
311   readStablePtrOffAddrzh
312   readInt8OffAddrzh
313   readInt16OffAddrzh
314   readInt32OffAddrzh
315   readInt64OffAddrzh
316   readWord8OffAddrzh
317   readWord16OffAddrzh
318   readWord32OffAddrzh
319   readWord64OffAddrzh
320
321   writeCharOffAddrzh
322   writeWideCharOffAddrzh
323   writeIntOffAddrzh
324   writeWordOffAddrzh
325   writeAddrOffAddrzh
326   writeForeignObjOffAddrzh
327   writeFloatOffAddrzh
328   writeDoubleOffAddrzh
329   writeStablePtrOffAddrzh
330   writeInt8OffAddrzh
331   writeInt16OffAddrzh
332   writeInt32OffAddrzh
333   writeInt64OffAddrzh
334   writeWord8OffAddrzh
335   writeWord16OffAddrzh
336   writeWord32OffAddrzh
337   writeWord64OffAddrzh
338
339   eqForeignObjzh
340   indexCharOffForeignObjzh
341   indexWideCharOffForeignObjzh
342   indexIntOffForeignObjzh
343   indexWordOffForeignObjzh
344   indexAddrOffForeignObjzh
345   indexFloatOffForeignObjzh
346   indexDoubleOffForeignObjzh
347   indexStablePtrOffForeignObjzh
348   indexInt8OffForeignObjzh
349   indexInt16OffForeignObjzh
350   indexInt32OffForeignObjzh
351   indexInt64OffForeignObjzh
352   indexWord8OffForeignObjzh
353   indexWord16OffForeignObjzh
354   indexWord32OffForeignObjzh
355   indexWord64OffForeignObjzh
356
357   unsafeFreezzeArrayzh          -- Note zz in the middle
358   unsafeFreezzeByteArrayzh      -- Ditto
359
360   unsafeThawArrayzh
361
362   sizzeofByteArrayzh            -- Ditto
363   sizzeofMutableByteArrayzh     -- Ditto
364
365   MutVarzh
366   newMutVarzh
367   readMutVarzh
368   writeMutVarzh
369   sameMutVarzh
370
371   catchzh
372   raisezh
373
374   Weakzh
375   mkWeakzh
376   deRefWeakzh
377   finalizzeWeakzh
378
379   ForeignObjzh
380   mkForeignObjzh
381   writeForeignObjzh
382   foreignObjToAddrzh
383   touchzh
384
385   StablePtrzh
386   makeStablePtrzh
387   deRefStablePtrzh
388   eqStablePtrzh
389
390   StableNamezh
391   makeStableNamezh
392   eqStableNamezh
393   stableNameToIntzh
394
395   reallyUnsafePtrEqualityzh
396
397   newBCOzh
398   BCOzh
399   mkApUpd0zh
400
401   unsafeCoercezh
402   addrToHValuezh
403 ;
404
405 -- Export PrelErr.error, so that others don't have to import PrelErr
406 __export PrelErr error ;
407
408
409 --------------------------------------------------
410 instance {CCallable Charzh} = zdfCCallableCharzh;
411 instance {CCallable Doublezh} = zdfCCallableDoublezh;
412 instance {CCallable Floatzh} = zdfCCallableFloatzh;
413 instance {CCallable Intzh} = zdfCCallableIntzh;
414 instance {CCallable Addrzh} = zdfCCallableAddrzh;
415 instance {CCallable Int64zh} = zdfCCallableInt64zh;
416 instance {CCallable Word64zh} = zdfCCallableWord64zh;
417 instance {CCallable Wordzh} = zdfCCallableWordzh;
418 instance {CCallable ByteArrayzh} = zdfCCallableByteArrayzh;
419 instance __forall s => {CCallable (MutableByteArrayzh s)} = zdfCCallableMutableByteArrayzh;
420 instance {CCallable ForeignObjzh} = zdfCCallableForeignObjzh;
421 instance __forall s => {CCallable (StablePtrzh s)} = zdfCCallableStablePtrzh;
422 -- CCallable and CReturnable have kind (Type AnyBox) so that
423 -- things like Int# can be instances of CCallable. 
424 1 class CCallable a :: ? ;
425 1 class CReturnable a :: ? ;
426
427 1 assert :: __forall a => PrelBase.Bool -> a -> a ;
428
429 -- These guys don't really exist:
430 --
431 1 zdfCCallableCharzh :: {CCallable Charzh} ;
432 1 zdfCCallableDoublezh :: {CCallable Doublezh} ;
433 1 zdfCCallableFloatzh :: {CCallable Floatzh} ;
434 1 zdfCCallableIntzh :: {CCallable Intzh} ;
435 1 zdfCCallableAddrzh :: {CCallable Addrzh} ;
436 1 zdfCCallableInt64zh :: {CCallable Int64zh} ;
437 1 zdfCCallableWord64zh :: {CCallable Word64zh} ;
438 1 zdfCCallableWordzh :: {CCallable Wordzh} ;
439 1 zdfCCallableByteArrayzh :: {CCallable ByteArrayzh} ;
440 1 zdfCCallableMutableByteArrayzh :: __forall s => {CCallable (MutableByteArrayzh s)} ;
441 1 zdfCCallableForeignObjzh :: {CCallable ForeignObjzh} ;
442 1 zdfCCallableStablePtrzh :: __forall a => {CCallable (StablePtrzh a)} ;