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