[project @ 1999-12-20 10:34:27 by simonpj]
[ghc-hetmet.git] / ghc / lib / std / PrelGHC.hi-boot
index a4c5d30..6d86963 100644 (file)
@@ -1,5 +1,5 @@
 ---------------------------------------------------------------------------
---                             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.
@@ -18,6 +18,11 @@ __export PrelGHC
 -- Magical assert thingy
   assert
 
+  -- constructor tags
+  tagToEnumzh
+  getTagzh
+  dataToTagzh
+
   -- I/O primitives
   RealWorld
   realWorldzh
@@ -25,8 +30,12 @@ __export PrelGHC
 
   -- Concurrency primitives
   ThreadIdzh
+  myThreadIdzh
   forkzh
+  yieldzh
   killThreadzh
+  blockAsyncExceptionszh
+  unblockAsyncExceptionszh
   delayzh
   waitReadzh
   waitWritezh
@@ -74,6 +83,7 @@ __export PrelGHC
   zszh
   quotIntzh
   remIntzh
+  gcdIntzh
   negateIntzh
   iShiftLzh
   iShiftRAzh
@@ -144,7 +154,6 @@ __export PrelGHC
   tanhFloatzh
   powerFloatzh
   decodeFloatzh
-  encodeFloatzh
   
   Doublezh
   zgzhzh
@@ -176,14 +185,20 @@ __export PrelGHC
   tanhDoublezh
   ztztzhzh
   decodeDoublezh
-  encodeDoublezh
   
   cmpIntegerzh
   cmpIntegerIntzh
   plusIntegerzh
   minusIntegerzh
   timesIntegerzh
+  gcdIntegerzh
+  quotIntegerzh
+  remIntegerzh
+  gcdIntegerzh
+  gcdIntegerIntzh
+  divExactIntegerzh
   quotRemIntegerzh
+  divModIntegerzh
   integer2Intzh
   integer2Wordzh
   int2Integerzh
@@ -279,6 +294,9 @@ __export PrelGHC
   unsafeFreezzeArrayzh         -- Note zz in the middle
   unsafeFreezzeByteArrayzh     -- Ditto
 
+  unsafeThawArrayzh
+  unsafeThawByteArrayzh
+
   sizzeofByteArrayzh           -- Ditto
   sizzeofMutableByteArrayzh    -- Ditto
 
@@ -315,9 +333,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)} ;