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