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