[project @ 1998-12-02 13:17:09 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   ->
13
14   All   -- Pseudo class used for universal quantification
15   CCallable
16   CReturnable
17
18   Void
19 -- void CAF is defined in PrelBase
20
21 -- Magical assert thingy
22   assert
23
24   -- I/O primitives
25   RealWorld
26   realWorld#
27   State#
28
29   -- Concurrency primitives
30   ThreadId#
31   fork#
32   killThread#
33   delay#
34   waitRead#
35   waitWrite#
36
37   -- MVars
38   MVar#
39   sameMVar#
40   newMVar#
41   takeMVar#
42   putMVar#
43   
44   -- Parallel
45   seq#
46   par#
47   parGlobal#
48   parLocal#
49   parAt#
50   parAtAbs#
51   parAtRel#
52   parAtForNow#
53
54   -- Character Type
55   Char# 
56   gtChar#
57   geChar#
58   eqChar#
59   neChar#
60   ltChar#
61   leChar#
62   ord#
63   chr#
64   
65   -- Int Type
66   Int#
67   >#
68   >=#
69   ==#
70   /=#
71   <#
72   <=#
73   +#
74   -#
75   *#
76   /#
77   quotInt#
78   remInt#
79   negateInt#
80   iShiftL#
81   iShiftRA#
82   iShiftRL#
83   
84   Word#
85   gtWord#
86   geWord#
87   eqWord#
88   neWord#
89   ltWord#
90   leWord#
91   quotWord#
92   remWord#
93   and#
94   or#
95   not#
96   xor#
97   shiftL#
98   shiftRA#
99   shiftRL#
100   int2Word#
101   word2Int#
102   
103   Word64#
104
105   Int64#
106
107   Addr#
108   gtAddr#
109   geAddr#
110   eqAddr#
111   neAddr#
112   ltAddr#
113   leAddr#
114   int2Addr#
115   addr2Int#
116   addr2Integer#
117
118   Float#
119   gtFloat#
120   geFloat#
121   eqFloat#
122   neFloat#
123   ltFloat#
124   leFloat#
125   plusFloat#
126   minusFloat#
127   timesFloat#
128   divideFloat#
129   negateFloat#
130   float2Int#
131   int2Float#
132   expFloat#
133   logFloat#
134   sqrtFloat#
135   sinFloat#
136   cosFloat#
137   tanFloat#
138   asinFloat#
139   acosFloat#
140   atanFloat#
141   sinhFloat#
142   coshFloat#
143   tanhFloat#
144   powerFloat#
145   decodeFloat#
146   encodeFloat#
147   
148   Double#
149   >##
150   >=##
151   ==##
152   /=##
153   <##
154   <=##
155   +##
156   -##
157   *##
158   /##
159   negateDouble#
160   double2Int#
161   int2Double#
162   double2Float#
163   float2Double#
164   expDouble#
165   logDouble#
166   sqrtDouble#
167   sinDouble#
168   cosDouble#
169   tanDouble#
170   asinDouble#
171   acosDouble#
172   atanDouble#
173   sinhDouble#
174   coshDouble#
175   tanhDouble#
176   **##
177   decodeDouble#
178   encodeDouble#
179   
180   cmpInteger#
181   negateInteger#
182   plusInteger#
183   minusInteger#
184   timesInteger#
185   quotRemInteger#
186   integer2Int#
187   integer2Word#
188   int2Integer#
189   word2Integer#
190   integerToInt64#
191   integerToWord64#
192   int64ToInteger#
193   word64ToInteger#
194   
195   Array#
196   ByteArray#
197   MutableArray#
198   MutableByteArray#
199   
200   sameMutableArray#
201   sameMutableByteArray#
202   
203   newArray#
204   newCharArray#
205   newIntArray#
206   newWordArray#
207   newFloatArray#
208   newDoubleArray#
209   newAddrArray#
210   newStablePtrArray#
211   
212   indexArray#
213   indexCharArray#
214   indexIntArray#
215   indexWordArray#
216   indexFloatArray#
217   indexDoubleArray#
218   indexAddrArray#
219   indexStablePtrArray#
220   indexInt64Array#
221   indexWord64Array#
222   
223 --  indexOffAddr#
224 indexCharOffAddr#
225 indexIntOffAddr#
226 indexWordOffAddr#
227 indexAddrOffAddr#
228 indexFloatOffAddr#
229 indexDoubleOffAddr#
230 indexStablePtrOffAddr#
231 indexInt64OffAddr#
232 indexWord64OffAddr#
233
234 writeCharOffAddr#
235 writeIntOffAddr#
236 writeWordOffAddr#
237 writeAddrOffAddr#
238 writeForeignObjOffAddr#
239 writeFloatOffAddr#
240 writeDoubleOffAddr#
241 writeStablePtrOffAddr#
242 writeInt64OffAddr#
243 writeWord64OffAddr#
244
245 --  indexOffForeignObj#
246 indexCharOffForeignObj#
247 indexIntOffForeignObj#
248 indexWordOffForeignObj#
249 indexAddrOffForeignObj#
250 indexFloatOffForeignObj#
251 indexDoubleOffForeignObj#
252 indexStablePtrOffForeignObj#
253 indexInt64OffForeignObj#
254 indexWord64OffForeignObj#
255   
256   writeArray#
257   writeCharArray#
258   writeIntArray#
259   writeWordArray#
260   writeFloatArray#
261   writeDoubleArray#
262   writeAddrArray#
263   writeStablePtrArray#
264   writeInt64Array#
265   writeWord64Array#
266   
267   readArray#
268   readCharArray#
269   readIntArray#
270   readWordArray#
271   readFloatArray#
272   readDoubleArray#
273   readAddrArray#
274   readStablePtrArray#
275   readInt64Array#
276   readWord64Array#
277   
278   unsafeFreezeArray#
279   unsafeFreezeByteArray#
280   
281   sizeofByteArray#
282   sizeofMutableByteArray#
283
284   MutVar#
285   newMutVar#
286   readMutVar#
287   writeMutVar#
288   sameMutVar#
289
290   catch#
291   raise#
292
293   Weak#
294   mkWeak#
295   deRefWeak#
296   
297   ForeignObj#
298   makeForeignObj#
299   writeForeignObj#
300
301   StablePtr#
302   makeStablePtr#
303   deRefStablePtr#
304   eqStablePtr#
305   reallyUnsafePtrEquality#
306
307   unsafeCoerce#
308 ;
309
310 1 class CCallable a :: ** ;
311 1 class CReturnable a :: ** ;
312 1 assert :: __forall [a] => PrelBase.Bool -> a -> a ;