[project @ 2000-04-13 14:27:15 by panne]
[ghc-hetmet.git] / ghc / lib / std / PrelGHC.hi-boot
index f25fe78..58432a6 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 "std" PrelGHC 2 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
+  takeMaybeMVarzh
   isEmptyMVarzh
   
   -- Parallel
@@ -71,13 +80,16 @@ __export PrelGHC
   zpzh
   zmzh
   ztzh
-  zszh
   quotIntzh
   remIntzh
+  gcdIntzh
   negateIntzh
   iShiftLzh
   iShiftRAzh
   iShiftRLzh
+  addIntCzh
+  subIntCzh
+  mulIntCzh
   
   Wordzh
   gtWordzh
@@ -141,7 +153,6 @@ __export PrelGHC
   tanhFloatzh
   powerFloatzh
   decodeFloatzh
-  encodeFloatzh
   
   Doublezh
   zgzhzh
@@ -173,14 +184,20 @@ __export PrelGHC
   tanhDoublezh
   ztztzhzh
   decodeDoublezh
-  encodeDoublezh
   
   cmpIntegerzh
-  negateIntegerzh
+  cmpIntegerIntzh
   plusIntegerzh
   minusIntegerzh
   timesIntegerzh
+  gcdIntegerzh
+  quotIntegerzh
+  remIntegerzh
+  gcdIntegerzh
+  gcdIntegerIntzh
+  divExactIntegerzh
   quotRemIntegerzh
+  divModIntegerzh
   integer2Intzh
   integer2Wordzh
   int2Integerzh
@@ -229,6 +246,16 @@ __export PrelGHC
   indexInt64OffAddrzh
   indexWord64OffAddrzh
   
+  readCharOffAddrzh
+  readIntOffAddrzh
+  readWordOffAddrzh
+  readAddrOffAddrzh
+  readFloatOffAddrzh
+  readDoubleOffAddrzh
+  readStablePtrOffAddrzh
+  readInt64OffAddrzh
+  readWord64OffAddrzh
+
   writeCharOffAddrzh
   writeIntOffAddrzh
   writeWordOffAddrzh
@@ -276,6 +303,8 @@ __export PrelGHC
   unsafeFreezzeArrayzh         -- Note zz in the middle
   unsafeFreezzeByteArrayzh     -- Ditto
 
+  unsafeThawArrayzh
+
   sizzeofByteArrayzh           -- Ditto
   sizzeofMutableByteArrayzh    -- Ditto
 
@@ -291,10 +320,10 @@ __export PrelGHC
   Weakzh
   mkWeakzh
   deRefWeakzh
-  finalizeWeakzh
+  finalizzeWeakzh
 
   ForeignObjzh
-  makeForeignObjzh
+  mkForeignObjzh
   writeForeignObjzh
 
   StablePtrzh
@@ -312,9 +341,36 @@ __export PrelGHC
   unsafeCoercezh
 ;
 
+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 ;
+
+-- 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)} ;