[project @ 1999-12-01 14:34:38 by simonmar]
[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 PrelGHC 2 0 where
9
10 __export PrelGHC
11
12   ZLzmzgZR      -- (->)
13
14   All   -- Pseudo class used for universal quantification
15   CCallable
16   CReturnable
17
18 -- Magical assert thingy
19   assert
20
21   -- constructor tags
22   tagToEnumzh
23   getTagzh
24   dataToTagzh
25
26   -- I/O primitives
27   RealWorld
28   realWorldzh
29   Statezh
30
31   -- Concurrency primitives
32   ThreadIdzh
33   myThreadIdzh
34   forkzh
35   yieldzh
36   killThreadzh
37   blockAsyncExceptionszh
38   unblockAsyncExceptionszh
39   delayzh
40   waitReadzh
41   waitWritezh
42
43   -- MVars
44   MVarzh
45   sameMVarzh
46   newMVarzh
47   takeMVarzh
48   putMVarzh
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   zszh
84   quotIntzh
85   remIntzh
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   addr2Integerzh
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   quotRemIntegerzh
195   divModIntegerzh
196   integer2Intzh
197   integer2Wordzh
198   int2Integerzh
199   word2Integerzh
200   integerToInt64zh
201   integerToWord64zh
202   int64ToIntegerzh
203   word64ToIntegerzh
204   
205   Arrayzh
206   ByteArrayzh
207   MutableArrayzh
208   MutableByteArrayzh
209   
210   sameMutableArrayzh
211   sameMutableByteArrayzh
212   
213   newArrayzh
214   newCharArrayzh
215   newIntArrayzh
216   newWordArrayzh
217   newFloatArrayzh
218   newDoubleArrayzh
219   newAddrArrayzh
220   newStablePtrArrayzh
221   
222   indexArrayzh
223   indexCharArrayzh
224   indexIntArrayzh
225   indexWordArrayzh
226   indexFloatArrayzh
227   indexDoubleArrayzh
228   indexAddrArrayzh
229   indexStablePtrArrayzh
230   indexInt64Arrayzh
231   indexWord64Arrayzh
232   
233 --  indexOffAddrzh
234   indexCharOffAddrzh
235   indexIntOffAddrzh
236   indexWordOffAddrzh
237   indexAddrOffAddrzh
238   indexFloatOffAddrzh
239   indexDoubleOffAddrzh
240   indexStablePtrOffAddrzh
241   indexInt64OffAddrzh
242   indexWord64OffAddrzh
243   
244   writeCharOffAddrzh
245   writeIntOffAddrzh
246   writeWordOffAddrzh
247   writeAddrOffAddrzh
248   writeForeignObjOffAddrzh
249   writeFloatOffAddrzh
250   writeDoubleOffAddrzh
251   writeStablePtrOffAddrzh
252   writeInt64OffAddrzh
253   writeWord64OffAddrzh
254
255 --  indexOffForeignObjzh
256   indexCharOffForeignObjzh
257   indexIntOffForeignObjzh
258   indexWordOffForeignObjzh
259   indexAddrOffForeignObjzh
260   indexFloatOffForeignObjzh
261   indexDoubleOffForeignObjzh
262   indexStablePtrOffForeignObjzh
263   indexInt64OffForeignObjzh
264   indexWord64OffForeignObjzh
265   
266   writeArrayzh
267   writeCharArrayzh
268   writeIntArrayzh
269   writeWordArrayzh
270   writeFloatArrayzh
271   writeDoubleArrayzh
272   writeAddrArrayzh
273   writeStablePtrArrayzh
274   writeInt64Arrayzh
275   writeWord64Arrayzh
276   
277   readArrayzh
278   readCharArrayzh
279   readIntArrayzh
280   readWordArrayzh
281   readFloatArrayzh
282   readDoubleArrayzh
283   readAddrArrayzh
284   readStablePtrArrayzh
285   readInt64Arrayzh
286   readWord64Arrayzh
287
288   unsafeFreezzeArrayzh          -- Note zz in the middle
289   unsafeFreezzeByteArrayzh      -- Ditto
290
291   unsafeThawArrayzh
292   unsafeThawByteArrayzh
293
294   sizzeofByteArrayzh            -- Ditto
295   sizzeofMutableByteArrayzh     -- Ditto
296
297   MutVarzh
298   newMutVarzh
299   readMutVarzh
300   writeMutVarzh
301   sameMutVarzh
302
303   catchzh
304   raisezh
305
306   Weakzh
307   mkWeakzh
308   deRefWeakzh
309   finalizzeWeakzh
310
311   ForeignObjzh
312   makeForeignObjzh
313   writeForeignObjzh
314
315   StablePtrzh
316   makeStablePtrzh
317   deRefStablePtrzh
318   eqStablePtrzh
319
320   StableNamezh
321   makeStableNamezh
322   eqStableNamezh
323   stableNameToIntzh
324
325   reallyUnsafePtrEqualityzh
326
327   unsafeCoercezh
328 ;
329
330 instance {CCallable Charzh} = zdfCCallableCharzh;
331 instance {CCallable Doublezh} = zdfCCallableDoublezh;
332 instance {CCallable Floatzh} = zdfCCallableFloatzh;
333 instance {CCallable Intzh} = zdfCCallableIntzh;
334 instance {CCallable Addrzh} = zdfCCallableAddrzh;
335 instance {CCallable Int64zh} = zdfCCallableInt64zh;
336 instance {CCallable Word64zh} = zdfCCallableWord64zh;
337 instance {CCallable Wordzh} = zdfCCallableWordzh;
338 instance {CCallable ByteArrayzh} = zdfCCallableByteArrayzh;
339 instance __forall [s] => {CCallable (MutableByteArrayzh s)} = zdfCCallableMutableByteArrayzh;
340 instance {CCallable ForeignObjzh} = zdfCCallableForeignObjzh;
341
342 -- CCallable and CReturnable have kind (Type AnyBox) so that
343 -- things like Int# can be instances of CCallable. 
344 1 class CCallable a :: ? ;
345 1 class CReturnable a :: ? ;
346
347 1 assert :: __forall [a] => PrelBase.Bool -> a -> a ;
348
349 -- These guys don't really exist:
350 --
351 1 zdfCCallableCharzh :: {CCallable Charzh} ;
352 1 zdfCCallableDoublezh :: {CCallable Doublezh} ;
353 1 zdfCCallableFloatzh :: {CCallable Floatzh} ;
354 1 zdfCCallableIntzh :: {CCallable Intzh} ;
355 1 zdfCCallableAddrzh :: {CCallable Addrzh} ;
356 1 zdfCCallableInt64zh :: {CCallable Int64zh} ;
357 1 zdfCCallableWord64zh :: {CCallable Word64zh} ;
358 1 zdfCCallableWordzh :: {CCallable Wordzh} ;
359 1 zdfCCallableByteArrayzh :: {CCallable ByteArrayzh} ;
360 1 zdfCCallableMutableByteArrayzh :: __forall [s] => {CCallable (MutableByteArrayzh s)} ;
361 1 zdfCCallableForeignObjzh :: {CCallable ForeignObjzh} ;