[project @ 2001-07-03 11:37:49 by simonmar]
[ghc-base.git] / GHC / Prim.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 "core" GHCziPrim 1 0 where
9
10 __export GHCziPrim
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   indexCharOffForeignObjzh
340   indexWideCharOffForeignObjzh
341   indexIntOffForeignObjzh
342   indexWordOffForeignObjzh
343   indexAddrOffForeignObjzh
344   indexFloatOffForeignObjzh
345   indexDoubleOffForeignObjzh
346   indexStablePtrOffForeignObjzh
347   indexInt8OffForeignObjzh
348   indexInt16OffForeignObjzh
349   indexInt32OffForeignObjzh
350   indexInt64OffForeignObjzh
351   indexWord8OffForeignObjzh
352   indexWord16OffForeignObjzh
353   indexWord32OffForeignObjzh
354   indexWord64OffForeignObjzh
355
356   unsafeFreezzeArrayzh          -- Note zz in the middle
357   unsafeFreezzeByteArrayzh      -- Ditto
358
359   unsafeThawArrayzh
360
361   sizzeofByteArrayzh            -- Ditto
362   sizzeofMutableByteArrayzh     -- Ditto
363
364   MutVarzh
365   newMutVarzh
366   readMutVarzh
367   writeMutVarzh
368   sameMutVarzh
369
370   catchzh
371   raisezh
372
373   Weakzh
374   mkWeakzh
375   deRefWeakzh
376   finalizzeWeakzh
377
378   ForeignObjzh
379   mkForeignObjzh
380   writeForeignObjzh
381   foreignObjToAddrzh
382   touchzh
383
384   StablePtrzh
385   makeStablePtrzh
386   deRefStablePtrzh
387   eqStablePtrzh
388
389   StableNamezh
390   makeStableNamezh
391   eqStableNamezh
392   stableNameToIntzh
393
394   reallyUnsafePtrEqualityzh
395
396   newBCOzh
397   BCOzh
398   mkApUpd0zh
399
400   unsafeCoercezh
401   addrToHValuezh
402 ;
403
404 -- Export GHC.Err.error, so that others don't have to import PrelErr
405 __export GHCziErr error ;
406
407
408 --------------------------------------------------
409 instance {CCallable Charzh} = zdfCCallableCharzh;
410 instance {CCallable Doublezh} = zdfCCallableDoublezh;
411 instance {CCallable Floatzh} = zdfCCallableFloatzh;
412 instance {CCallable Intzh} = zdfCCallableIntzh;
413 instance {CCallable Addrzh} = zdfCCallableAddrzh;
414 instance {CCallable Int64zh} = zdfCCallableInt64zh;
415 instance {CCallable Word64zh} = zdfCCallableWord64zh;
416 instance {CCallable Wordzh} = zdfCCallableWordzh;
417 instance {CCallable ByteArrayzh} = zdfCCallableByteArrayzh;
418 instance __forall s => {CCallable (MutableByteArrayzh s)} = zdfCCallableMutableByteArrayzh;
419 instance {CCallable ForeignObjzh} = zdfCCallableForeignObjzh;
420 instance __forall s => {CCallable (StablePtrzh s)} = zdfCCallableStablePtrzh;
421 -- CCallable and CReturnable have kind (Type AnyBox) so that
422 -- things like Int# can be instances of CCallable. 
423 1 class CCallable a :: ? ;
424 1 class CReturnable a :: ? ;
425
426 1 assert :: __forall a => GHCziBase.Bool -> a -> a ;
427
428 -- These guys don't really exist:
429 --
430 1 zdfCCallableCharzh :: {CCallable Charzh} ;
431 1 zdfCCallableDoublezh :: {CCallable Doublezh} ;
432 1 zdfCCallableFloatzh :: {CCallable Floatzh} ;
433 1 zdfCCallableIntzh :: {CCallable Intzh} ;
434 1 zdfCCallableAddrzh :: {CCallable Addrzh} ;
435 1 zdfCCallableInt64zh :: {CCallable Int64zh} ;
436 1 zdfCCallableWord64zh :: {CCallable Word64zh} ;
437 1 zdfCCallableWordzh :: {CCallable Wordzh} ;
438 1 zdfCCallableByteArrayzh :: {CCallable ByteArrayzh} ;
439 1 zdfCCallableMutableByteArrayzh :: __forall s => {CCallable (MutableByteArrayzh s)} ;
440 1 zdfCCallableForeignObjzh :: {CCallable ForeignObjzh} ;
441 1 zdfCCallableStablePtrzh :: __forall a => {CCallable (StablePtrzh a)} ;