[project @ 2001-01-15 09:55:41 by sewardj]
[ghc-hetmet.git] / ghc / lib / std / PrelGHC.hi-boot
index 35bd436..b23a0a0 100644 (file)
@@ -1,23 +1,27 @@
 ---------------------------------------------------------------------------
---                             GHC.hi
+--                             PrelGHC.hi-boot
 -- 
 --     This hand-written interface file allows you to bring into scope the 
 --     primitive operations and types that GHC knows about.
 ---------------------------------------------------------------------------
 
-__interface PrelGHC 2 0 where
+__interface "rts" PrelGHC 1 0 where
 
 __export PrelGHC
 
   ZLzmzgZR     -- (->)
 
-  All  -- Pseudo class used for universal quantification
   CCallable
   CReturnable
 
 -- Magical assert thingy
   assert
 
+  -- constructor tags
+  tagToEnumzh
+  getTagzh
+  dataToTagzh
+
   -- I/O primitives
   RealWorld
   realWorldzh
@@ -25,8 +29,12 @@ __export PrelGHC
 
   -- Concurrency primitives
   ThreadIdzh
+  myThreadIdzh
   forkzh
+  yieldzh
   killThreadzh
+  blockAsyncExceptionszh
+  unblockAsyncExceptionszh
   delayzh
   waitReadzh
   waitWritezh
@@ -37,6 +45,7 @@ __export PrelGHC
   newMVarzh
   takeMVarzh
   putMVarzh
+  tryTakeMVarzh
   isEmptyMVarzh
   
   -- Parallel
@@ -71,13 +80,16 @@ __export PrelGHC
   zpzh
   zmzh
   ztzh
-  zszh
   quotIntzh
   remIntzh
+  gcdIntzh
   negateIntzh
   iShiftLzh
   iShiftRAzh
   iShiftRLzh
+  addIntCzh
+  subIntCzh
+  mulIntCzh
   
   Wordzh
   gtWordzh
@@ -111,7 +123,6 @@ __export PrelGHC
   leAddrzh
   int2Addrzh
   addr2Intzh
-  addr2Integerzh
 
   Floatzh
   gtFloatzh
@@ -141,7 +152,6 @@ __export PrelGHC
   tanhFloatzh
   powerFloatzh
   decodeFloatzh
-  encodeFloatzh
   
   Doublezh
   zgzhzh
@@ -173,14 +183,20 @@ __export PrelGHC
   tanhDoublezh
   ztztzhzh
   decodeDoublezh
-  encodeDoublezh
   
   cmpIntegerzh
-  negateIntegerzh
+  cmpIntegerIntzh
   plusIntegerzh
   minusIntegerzh
   timesIntegerzh
+  gcdIntegerzh
+  quotIntegerzh
+  remIntegerzh
+  gcdIntegerzh
+  gcdIntegerIntzh
+  divExactIntegerzh
   quotRemIntegerzh
+  divModIntegerzh
   integer2Intzh
   integer2Wordzh
   int2Integerzh
@@ -189,7 +205,11 @@ __export PrelGHC
   integerToWord64zh
   int64ToIntegerzh
   word64ToIntegerzh
-  
+  andIntegerzh
+  orIntegerzh
+  xorIntegerzh
+  complementIntegerzh
+
   Arrayzh
   ByteArrayzh
   MutableArrayzh
@@ -199,13 +219,7 @@ __export PrelGHC
   sameMutableByteArrayzh
   
   newArrayzh
-  newCharArrayzh
-  newIntArrayzh
-  newWordArrayzh
-  newFloatArrayzh
-  newDoubleArrayzh
-  newAddrArrayzh
-  newStablePtrArrayzh
+  newByteArrayzh
   
   indexArrayzh
   indexCharArrayzh
@@ -215,7 +229,13 @@ __export PrelGHC
   indexDoubleArrayzh
   indexAddrArrayzh
   indexStablePtrArrayzh
+  indexInt8Arrayzh
+  indexInt16Arrayzh
+  indexInt32Arrayzh
   indexInt64Arrayzh
+  indexWord8Arrayzh
+  indexWord16Arrayzh
+  indexWord32Arrayzh
   indexWord64Arrayzh
   
 --  indexOffAddrzh
@@ -226,9 +246,31 @@ __export PrelGHC
   indexFloatOffAddrzh
   indexDoubleOffAddrzh
   indexStablePtrOffAddrzh
+  indexInt8OffAddrzh
+  indexInt16OffAddrzh
+  indexInt32OffAddrzh
   indexInt64OffAddrzh
+  indexWord8OffAddrzh
+  indexWord16OffAddrzh
+  indexWord32OffAddrzh
   indexWord64OffAddrzh
   
+  readCharOffAddrzh
+  readIntOffAddrzh
+  readWordOffAddrzh
+  readAddrOffAddrzh
+  readFloatOffAddrzh
+  readDoubleOffAddrzh
+  readStablePtrOffAddrzh
+  readInt8OffAddrzh
+  readInt16OffAddrzh
+  readInt32OffAddrzh
+  readInt64OffAddrzh
+  readWord8OffAddrzh
+  readWord16OffAddrzh
+  readWord32OffAddrzh
+  readWord64OffAddrzh
+
   writeCharOffAddrzh
   writeIntOffAddrzh
   writeWordOffAddrzh
@@ -237,7 +279,13 @@ __export PrelGHC
   writeFloatOffAddrzh
   writeDoubleOffAddrzh
   writeStablePtrOffAddrzh
+  writeInt8OffAddrzh
+  writeInt16OffAddrzh
+  writeInt32OffAddrzh
   writeInt64OffAddrzh
+  writeWord8OffAddrzh
+  writeWord16OffAddrzh
+  writeWord32OffAddrzh
   writeWord64OffAddrzh
 
 --  indexOffForeignObjzh
@@ -248,7 +296,13 @@ __export PrelGHC
   indexFloatOffForeignObjzh
   indexDoubleOffForeignObjzh
   indexStablePtrOffForeignObjzh
+  indexInt8OffForeignObjzh
+  indexInt16OffForeignObjzh
+  indexInt32OffForeignObjzh
   indexInt64OffForeignObjzh
+  indexWord8OffForeignObjzh
+  indexWord16OffForeignObjzh
+  indexWord32OffForeignObjzh
   indexWord64OffForeignObjzh
   
   writeArrayzh
@@ -259,7 +313,13 @@ __export PrelGHC
   writeDoubleArrayzh
   writeAddrArrayzh
   writeStablePtrArrayzh
+  writeInt8Arrayzh
+  writeInt16Arrayzh
+  writeInt32Arrayzh
   writeInt64Arrayzh
+  writeWord8Arrayzh
+  writeWord16Arrayzh
+  writeWord32Arrayzh
   writeWord64Arrayzh
   
   readArrayzh
@@ -270,12 +330,20 @@ __export PrelGHC
   readDoubleArrayzh
   readAddrArrayzh
   readStablePtrArrayzh
+  readInt8Arrayzh
+  readInt16Arrayzh
+  readInt32Arrayzh
   readInt64Arrayzh
+  readWord8Arrayzh
+  readWord16Arrayzh
+  readWord32Arrayzh
   readWord64Arrayzh
 
   unsafeFreezzeArrayzh         -- Note zz in the middle
   unsafeFreezzeByteArrayzh     -- Ditto
 
+  unsafeThawArrayzh
+
   sizzeofByteArrayzh           -- Ditto
   sizzeofMutableByteArrayzh    -- Ditto
 
@@ -291,11 +359,13 @@ __export PrelGHC
   Weakzh
   mkWeakzh
   deRefWeakzh
-  finaliseWeakzh
+  finalizzeWeakzh
 
   ForeignObjzh
-  makeForeignObjzh
+  mkForeignObjzh
   writeForeignObjzh
+  foreignObjToAddrzh
+  touchzh
 
   StablePtrzh
   makeStablePtrzh
@@ -307,14 +377,56 @@ __export PrelGHC
   eqStableNamezh
   stableNameToIntzh
 
+  indexPtrOffClosurezh
+  indexWordOffClosurezh
+  setPtrOffClosurezh
+  setWordOffClosurezh
+
   reallyUnsafePtrEqualityzh
 
+  newBCOzh
+  BCOzh
+  mkApUpd0zh
+
   unsafeCoercezh
+  addrToHValuezh
 ;
 
+-- Export PrelErr.error, so that others don't have to import PrelErr
+__export PrelErr error ;
+
+
+--------------------------------------------------
+instance {CCallable Charzh} = zdfCCallableCharzh;
+instance {CCallable Doublezh} = zdfCCallableDoublezh;
+instance {CCallable Floatzh} = zdfCCallableFloatzh;
+instance {CCallable Intzh} = zdfCCallableIntzh;
+instance {CCallable Addrzh} = zdfCCallableAddrzh;
+instance {CCallable Int64zh} = zdfCCallableInt64zh;
+instance {CCallable Word64zh} = zdfCCallableWord64zh;
+instance {CCallable Wordzh} = zdfCCallableWordzh;
+instance {CCallable ByteArrayzh} = zdfCCallableByteArrayzh;
+instance __forall s => {CCallable (MutableByteArrayzh s)} = zdfCCallableMutableByteArrayzh;
+instance {CCallable ForeignObjzh} = zdfCCallableForeignObjzh;
+instance __forall s => {CCallable (StablePtrzh s)} = zdfCCallableStablePtrzh;
 -- CCallable and CReturnable have kind (Type AnyBox) so that
 -- things like Int# can be instances of CCallable. 
 1 class CCallable a :: ? ;
 1 class CReturnable a :: ? ;
 
-1 assert :: __forall [a] => PrelBase.Bool -> a -> a ;
+1 assert :: __forall a => PrelBase.Bool -> a -> a ;
+
+-- These guys don't really exist:
+--
+1 zdfCCallableCharzh :: {CCallable Charzh} ;
+1 zdfCCallableDoublezh :: {CCallable Doublezh} ;
+1 zdfCCallableFloatzh :: {CCallable Floatzh} ;
+1 zdfCCallableIntzh :: {CCallable Intzh} ;
+1 zdfCCallableAddrzh :: {CCallable Addrzh} ;
+1 zdfCCallableInt64zh :: {CCallable Int64zh} ;
+1 zdfCCallableWord64zh :: {CCallable Word64zh} ;
+1 zdfCCallableWordzh :: {CCallable Wordzh} ;
+1 zdfCCallableByteArrayzh :: {CCallable ByteArrayzh} ;
+1 zdfCCallableMutableByteArrayzh :: __forall s => {CCallable (MutableByteArrayzh s)} ;
+1 zdfCCallableForeignObjzh :: {CCallable ForeignObjzh} ;
+1 zdfCCallableStablePtrzh :: __forall a => {CCallable (StablePtrzh a)} ;