[project @ 1999-02-18 12:26:11 by simonm]
[ghc-hetmet.git] / ghc / lib / std / PrelGHC.hi-boot
1 ---------------------------------------------------------------------------
2 --                              GHC.hi
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   -- I/O primitives
22   RealWorld
23   realWorldzh
24   Statezh
25
26   -- Concurrency primitives
27   ThreadIdzh
28   forkzh
29   killThreadzh
30   delayzh
31   waitReadzh
32   waitWritezh
33
34   -- MVars
35   MVarzh
36   sameMVarzh
37   newMVarzh
38   takeMVarzh
39   putMVarzh
40   isEmptyMVarzh
41   
42   -- Parallel
43   seqzh
44   parzh
45   parGlobalzh
46   parLocalzh
47   parAtzh
48   parAtAbszh
49   parAtRelzh
50   parAtForNowzh
51
52   -- Character Type
53   Charzh 
54   gtCharzh
55   geCharzh
56   eqCharzh
57   neCharzh
58   ltCharzh
59   leCharzh
60   ordzh
61   chrzh
62   
63   -- Int Type
64   Intzh
65   zgzh
66   zgzezh
67   zezezh
68   zszezh
69   zlzh
70   zlzezh
71   zpzh
72   zmzh
73   ztzh
74   zszh
75   quotIntzh
76   remIntzh
77   negateIntzh
78   iShiftLzh
79   iShiftRAzh
80   iShiftRLzh
81   addIntCzh
82   subIntCzh
83   mulIntCzh
84   
85   Wordzh
86   gtWordzh
87   geWordzh
88   eqWordzh
89   neWordzh
90   ltWordzh
91   leWordzh
92   quotWordzh
93   remWordzh
94   andzh
95   orzh
96   notzh
97   xorzh
98   shiftLzh
99 --  shiftRAzh
100   shiftRLzh
101   int2Wordzh
102   word2Intzh
103   
104   Word64zh
105
106   Int64zh
107
108   Addrzh
109   gtAddrzh
110   geAddrzh
111   eqAddrzh
112   neAddrzh
113   ltAddrzh
114   leAddrzh
115   int2Addrzh
116   addr2Intzh
117   addr2Integerzh
118
119   Floatzh
120   gtFloatzh
121   geFloatzh
122   eqFloatzh
123   neFloatzh
124   ltFloatzh
125   leFloatzh
126   plusFloatzh
127   minusFloatzh
128   timesFloatzh
129   divideFloatzh
130   negateFloatzh
131   float2Intzh
132   int2Floatzh
133   expFloatzh
134   logFloatzh
135   sqrtFloatzh
136   sinFloatzh
137   cosFloatzh
138   tanFloatzh
139   asinFloatzh
140   acosFloatzh
141   atanFloatzh
142   sinhFloatzh
143   coshFloatzh
144   tanhFloatzh
145   powerFloatzh
146   decodeFloatzh
147   
148   Doublezh
149   zgzhzh
150   zgzezhzh
151   zezezhzh
152   zszezhzh
153   zlzhzh
154   zlzezhzh
155   zpzhzh
156   zmzhzh
157   ztzhzh
158   zszhzh
159   negateDoublezh
160   double2Intzh
161   int2Doublezh
162   double2Floatzh
163   float2Doublezh
164   expDoublezh
165   logDoublezh
166   sqrtDoublezh
167   sinDoublezh
168   cosDoublezh
169   tanDoublezh
170   asinDoublezh
171   acosDoublezh
172   atanDoublezh
173   sinhDoublezh
174   coshDoublezh
175   tanhDoublezh
176   ztztzhzh
177   decodeDoublezh
178   
179   cmpIntegerzh
180   cmpIntegerIntzh
181   plusIntegerzh
182   minusIntegerzh
183   timesIntegerzh
184   quotRemIntegerzh
185   integer2Intzh
186   integer2Wordzh
187   int2Integerzh
188   word2Integerzh
189   integerToInt64zh
190   integerToWord64zh
191   int64ToIntegerzh
192   word64ToIntegerzh
193   
194   Arrayzh
195   ByteArrayzh
196   MutableArrayzh
197   MutableByteArrayzh
198   
199   sameMutableArrayzh
200   sameMutableByteArrayzh
201   
202   newArrayzh
203   newCharArrayzh
204   newIntArrayzh
205   newWordArrayzh
206   newFloatArrayzh
207   newDoubleArrayzh
208   newAddrArrayzh
209   newStablePtrArrayzh
210   
211   indexArrayzh
212   indexCharArrayzh
213   indexIntArrayzh
214   indexWordArrayzh
215   indexFloatArrayzh
216   indexDoubleArrayzh
217   indexAddrArrayzh
218   indexStablePtrArrayzh
219   indexInt64Arrayzh
220   indexWord64Arrayzh
221   
222 --  indexOffAddrzh
223   indexCharOffAddrzh
224   indexIntOffAddrzh
225   indexWordOffAddrzh
226   indexAddrOffAddrzh
227   indexFloatOffAddrzh
228   indexDoubleOffAddrzh
229   indexStablePtrOffAddrzh
230   indexInt64OffAddrzh
231   indexWord64OffAddrzh
232   
233   writeCharOffAddrzh
234   writeIntOffAddrzh
235   writeWordOffAddrzh
236   writeAddrOffAddrzh
237   writeForeignObjOffAddrzh
238   writeFloatOffAddrzh
239   writeDoubleOffAddrzh
240   writeStablePtrOffAddrzh
241   writeInt64OffAddrzh
242   writeWord64OffAddrzh
243
244 --  indexOffForeignObjzh
245   indexCharOffForeignObjzh
246   indexIntOffForeignObjzh
247   indexWordOffForeignObjzh
248   indexAddrOffForeignObjzh
249   indexFloatOffForeignObjzh
250   indexDoubleOffForeignObjzh
251   indexStablePtrOffForeignObjzh
252   indexInt64OffForeignObjzh
253   indexWord64OffForeignObjzh
254   
255   writeArrayzh
256   writeCharArrayzh
257   writeIntArrayzh
258   writeWordArrayzh
259   writeFloatArrayzh
260   writeDoubleArrayzh
261   writeAddrArrayzh
262   writeStablePtrArrayzh
263   writeInt64Arrayzh
264   writeWord64Arrayzh
265   
266   readArrayzh
267   readCharArrayzh
268   readIntArrayzh
269   readWordArrayzh
270   readFloatArrayzh
271   readDoubleArrayzh
272   readAddrArrayzh
273   readStablePtrArrayzh
274   readInt64Arrayzh
275   readWord64Arrayzh
276
277   unsafeFreezzeArrayzh          -- Note zz in the middle
278   unsafeFreezzeByteArrayzh      -- Ditto
279
280   sizzeofByteArrayzh            -- Ditto
281   sizzeofMutableByteArrayzh     -- Ditto
282
283   MutVarzh
284   newMutVarzh
285   readMutVarzh
286   writeMutVarzh
287   sameMutVarzh
288
289   catchzh
290   raisezh
291
292   Weakzh
293   mkWeakzh
294   deRefWeakzh
295   finalizzeWeakzh
296
297   ForeignObjzh
298   makeForeignObjzh
299   writeForeignObjzh
300
301   StablePtrzh
302   makeStablePtrzh
303   deRefStablePtrzh
304   eqStablePtrzh
305
306   StableNamezh
307   makeStableNamezh
308   eqStableNamezh
309   stableNameToIntzh
310
311   reallyUnsafePtrEqualityzh
312
313   unsafeCoercezh
314 ;
315
316 -- CCallable and CReturnable have kind (Type AnyBox) so that
317 -- things like Int# can be instances of CCallable. 
318 1 class CCallable a :: ? ;
319 1 class CReturnable a :: ? ;
320
321 1 assert :: __forall [a] => PrelBase.Bool -> a -> a ;