[project @ 2000-09-26 16:45:33 by simonpj]
[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   
209   Arrayzh
210   ByteArrayzh
211   MutableArrayzh
212   MutableByteArrayzh
213   
214   sameMutableArrayzh
215   sameMutableByteArrayzh
216   
217   newArrayzh
218   newCharArrayzh
219   newIntArrayzh
220   newWordArrayzh
221   newFloatArrayzh
222   newDoubleArrayzh
223   newAddrArrayzh
224   newStablePtrArrayzh
225   
226   indexArrayzh
227   indexCharArrayzh
228   indexIntArrayzh
229   indexWordArrayzh
230   indexFloatArrayzh
231   indexDoubleArrayzh
232   indexAddrArrayzh
233   indexStablePtrArrayzh
234   indexInt64Arrayzh
235   indexWord64Arrayzh
236   
237 --  indexOffAddrzh
238   indexCharOffAddrzh
239   indexIntOffAddrzh
240   indexWordOffAddrzh
241   indexAddrOffAddrzh
242   indexFloatOffAddrzh
243   indexDoubleOffAddrzh
244   indexStablePtrOffAddrzh
245   indexInt64OffAddrzh
246   indexWord64OffAddrzh
247   
248   readCharOffAddrzh
249   readIntOffAddrzh
250   readWordOffAddrzh
251   readAddrOffAddrzh
252   readFloatOffAddrzh
253   readDoubleOffAddrzh
254   readStablePtrOffAddrzh
255   readInt64OffAddrzh
256   readWord64OffAddrzh
257
258   writeCharOffAddrzh
259   writeIntOffAddrzh
260   writeWordOffAddrzh
261   writeAddrOffAddrzh
262   writeForeignObjOffAddrzh
263   writeFloatOffAddrzh
264   writeDoubleOffAddrzh
265   writeStablePtrOffAddrzh
266   writeInt64OffAddrzh
267   writeWord64OffAddrzh
268
269 --  indexOffForeignObjzh
270   indexCharOffForeignObjzh
271   indexIntOffForeignObjzh
272   indexWordOffForeignObjzh
273   indexAddrOffForeignObjzh
274   indexFloatOffForeignObjzh
275   indexDoubleOffForeignObjzh
276   indexStablePtrOffForeignObjzh
277   indexInt64OffForeignObjzh
278   indexWord64OffForeignObjzh
279   
280   writeArrayzh
281   writeCharArrayzh
282   writeIntArrayzh
283   writeWordArrayzh
284   writeFloatArrayzh
285   writeDoubleArrayzh
286   writeAddrArrayzh
287   writeStablePtrArrayzh
288   writeInt64Arrayzh
289   writeWord64Arrayzh
290   
291   readArrayzh
292   readCharArrayzh
293   readIntArrayzh
294   readWordArrayzh
295   readFloatArrayzh
296   readDoubleArrayzh
297   readAddrArrayzh
298   readStablePtrArrayzh
299   readInt64Arrayzh
300   readWord64Arrayzh
301
302   unsafeFreezzeArrayzh          -- Note zz in the middle
303   unsafeFreezzeByteArrayzh      -- Ditto
304
305   unsafeThawArrayzh
306
307   sizzeofByteArrayzh            -- Ditto
308   sizzeofMutableByteArrayzh     -- Ditto
309
310   MutVarzh
311   newMutVarzh
312   readMutVarzh
313   writeMutVarzh
314   sameMutVarzh
315
316   catchzh
317   raisezh
318
319   Weakzh
320   mkWeakzh
321   deRefWeakzh
322   finalizzeWeakzh
323
324   ForeignObjzh
325   mkForeignObjzh
326   writeForeignObjzh
327   foreignObjToAddrzh
328   touchzh
329
330   StablePtrzh
331   makeStablePtrzh
332   deRefStablePtrzh
333   eqStablePtrzh
334
335   StableNamezh
336   makeStableNamezh
337   eqStableNamezh
338   stableNameToIntzh
339
340   indexPtrOffClosurezh
341   indexWordOffClosurezh
342
343   reallyUnsafePtrEqualityzh
344
345   unsafeCoercezh
346 ;
347
348 -- Export PrelErr.error, so that others don't have to import PrelErr
349 __export PrelErr error ;
350
351
352 --------------------------------------------------
353 instance {CCallable Charzh} = zdfCCallableCharzh;
354 instance {CCallable Doublezh} = zdfCCallableDoublezh;
355 instance {CCallable Floatzh} = zdfCCallableFloatzh;
356 instance {CCallable Intzh} = zdfCCallableIntzh;
357 instance {CCallable Addrzh} = zdfCCallableAddrzh;
358 instance {CCallable Int64zh} = zdfCCallableInt64zh;
359 instance {CCallable Word64zh} = zdfCCallableWord64zh;
360 instance {CCallable Wordzh} = zdfCCallableWordzh;
361 instance {CCallable ByteArrayzh} = zdfCCallableByteArrayzh;
362 instance __forall s => {CCallable (MutableByteArrayzh s)} = zdfCCallableMutableByteArrayzh;
363 instance {CCallable ForeignObjzh} = zdfCCallableForeignObjzh;
364 instance __forall s => {CCallable (StablePtrzh s)} = zdfCCallableStablePtrzh;
365 -- CCallable and CReturnable have kind (Type AnyBox) so that
366 -- things like Int# can be instances of CCallable. 
367 1 class CCallable a :: ? ;
368 1 class CReturnable a :: ? ;
369
370 1 assert :: __forall a => PrelBase.Bool -> a -> a ;
371
372 -- These guys don't really exist:
373 --
374 1 zdfCCallableCharzh :: {CCallable Charzh} ;
375 1 zdfCCallableDoublezh :: {CCallable Doublezh} ;
376 1 zdfCCallableFloatzh :: {CCallable Floatzh} ;
377 1 zdfCCallableIntzh :: {CCallable Intzh} ;
378 1 zdfCCallableAddrzh :: {CCallable Addrzh} ;
379 1 zdfCCallableInt64zh :: {CCallable Int64zh} ;
380 1 zdfCCallableWord64zh :: {CCallable Word64zh} ;
381 1 zdfCCallableWordzh :: {CCallable Wordzh} ;
382 1 zdfCCallableByteArrayzh :: {CCallable ByteArrayzh} ;
383 1 zdfCCallableMutableByteArrayzh :: __forall s => {CCallable (MutableByteArrayzh s)} ;
384 1 zdfCCallableForeignObjzh :: {CCallable ForeignObjzh} ;
385 1 zdfCCallableStablePtrzh :: __forall a => {CCallable (StablePtrzh a)} ;