[project @ 2001-08-04 06:19:54 by ken]
[ghc-hetmet.git] / ghc / lib / std / PrelGHC.hi-boot.pp
diff --git a/ghc/lib/std/PrelGHC.hi-boot.pp b/ghc/lib/std/PrelGHC.hi-boot.pp
new file mode 100644 (file)
index 0000000..c577efd
--- /dev/null
@@ -0,0 +1,475 @@
+---------------------------------------------------------------------------
+--                             PrelGHC.hi-boot
+-- 
+--     This hand-written interface file allows you to bring into scope the 
+--     primitive operations and types that GHC knows about.
+---------------------------------------------------------------------------
+
+#include "config.h"
+#include "Derived.h"
+
+__interface "std" PrelGHC 1 0 where
+
+__export PrelGHC
+
+  ZLzmzgZR     -- (->)
+
+  CCallable
+  CReturnable
+
+-- Magical assert thingy
+  assert
+
+  -- constructor tags
+  tagToEnumzh
+  getTagzh
+  dataToTagzh
+
+  -- I/O primitives
+  RealWorld
+  realWorldzh
+  Statezh
+
+  -- Concurrency primitives
+  ThreadIdzh
+  myThreadIdzh
+  forkzh
+  yieldzh
+  killThreadzh
+  blockAsyncExceptionszh
+  unblockAsyncExceptionszh
+  delayzh
+  waitReadzh
+  waitWritezh
+
+  -- MVars
+  MVarzh
+  sameMVarzh
+  newMVarzh
+  takeMVarzh
+  putMVarzh
+  tryTakeMVarzh
+  tryPutMVarzh
+  isEmptyMVarzh
+
+  -- Parallel
+  seqzh
+  parzh
+  parGlobalzh
+  parLocalzh
+  parAtzh
+  parAtAbszh
+  parAtRelzh
+  parAtForNowzh
+
+  -- Character Type
+  Charzh 
+  gtCharzh
+  geCharzh
+  eqCharzh
+  neCharzh
+  ltCharzh
+  leCharzh
+  ordzh
+  chrzh
+
+  -- Int Type
+  Intzh
+  zgzh
+  zgzezh
+  zezezh
+  zszezh
+  zlzh
+  zlzezh
+  zpzh
+  zmzh
+  ztzh
+  quotIntzh
+  remIntzh
+  gcdIntzh
+  negateIntzh
+  iShiftLzh
+  iShiftRAzh
+  iShiftRLzh
+  addIntCzh
+  subIntCzh
+  mulIntCzh
+
+  Wordzh
+  gtWordzh
+  geWordzh
+  eqWordzh
+  neWordzh
+  ltWordzh
+  leWordzh
+  plusWordzh
+  minusWordzh
+  timesWordzh
+  quotWordzh
+  remWordzh
+  andzh
+  orzh
+  notzh
+  xorzh
+  shiftLzh
+  shiftRLzh
+  int2Wordzh
+  word2Intzh
+
+  Int64zh
+  Word64zh
+
+  intToInt8zh
+  intToInt16zh
+  intToInt32zh
+  wordToWord8zh
+  wordToWord16zh
+  wordToWord32zh
+
+  Addrzh
+  gtAddrzh
+  geAddrzh
+  eqAddrzh
+  neAddrzh
+  ltAddrzh
+  leAddrzh
+  int2Addrzh
+  addr2Intzh
+
+  Floatzh
+  gtFloatzh
+  geFloatzh
+  eqFloatzh
+  neFloatzh
+  ltFloatzh
+  leFloatzh
+  plusFloatzh
+  minusFloatzh
+  timesFloatzh
+  divideFloatzh
+  negateFloatzh
+  float2Intzh
+  int2Floatzh
+  expFloatzh
+  logFloatzh
+  sqrtFloatzh
+  sinFloatzh
+  cosFloatzh
+  tanFloatzh
+  asinFloatzh
+  acosFloatzh
+  atanFloatzh
+  sinhFloatzh
+  coshFloatzh
+  tanhFloatzh
+  powerFloatzh
+  decodeFloatzh
+
+  Doublezh
+  zgzhzh
+  zgzezhzh
+  zezezhzh
+  zszezhzh
+  zlzhzh
+  zlzezhzh
+  zpzhzh
+  zmzhzh
+  ztzhzh
+  zszhzh
+  negateDoublezh
+  double2Intzh
+  int2Doublezh
+  double2Floatzh
+  float2Doublezh
+  expDoublezh
+  logDoublezh
+  sqrtDoublezh
+  sinDoublezh
+  cosDoublezh
+  tanDoublezh
+  asinDoublezh
+  acosDoublezh
+  atanDoublezh
+  sinhDoublezh
+  coshDoublezh
+  tanhDoublezh
+  ztztzhzh
+  decodeDoublezh
+
+  cmpIntegerzh
+  cmpIntegerIntzh
+  plusIntegerzh
+  minusIntegerzh
+  timesIntegerzh
+  gcdIntegerzh
+  quotIntegerzh
+  remIntegerzh
+  gcdIntegerzh
+  gcdIntegerIntzh
+  divExactIntegerzh
+  quotRemIntegerzh
+  divModIntegerzh
+  integer2Intzh
+  integer2Wordzh
+  int2Integerzh
+  word2Integerzh
+#ifdef SUPPORT_LONG_LONGS
+  integerToInt64zh
+  integerToWord64zh
+  int64ToIntegerzh
+  word64ToIntegerzh
+#endif
+  andIntegerzh
+  orIntegerzh
+  xorIntegerzh
+  complementIntegerzh
+
+  Arrayzh
+  ByteArrayzh
+  MutableArrayzh
+  MutableByteArrayzh
+
+  sameMutableArrayzh
+  sameMutableByteArrayzh
+
+  newArrayzh
+  newByteArrayzh
+
+  indexArrayzh
+  indexCharArrayzh
+  indexWideCharArrayzh
+  indexIntArrayzh
+  indexWordArrayzh
+  indexAddrArrayzh
+  indexFloatArrayzh
+  indexDoubleArrayzh
+  indexStablePtrArrayzh
+  indexInt8Arrayzh
+  indexInt16Arrayzh
+  indexInt32Arrayzh
+#ifdef SUPPORT_LONG_LONGS
+  indexInt64Arrayzh
+#endif
+  indexWord8Arrayzh
+  indexWord16Arrayzh
+  indexWord32Arrayzh
+#ifdef SUPPORT_LONG_LONGS
+  indexWord64Arrayzh
+#endif
+
+  readArrayzh
+  readCharArrayzh
+  readWideCharArrayzh
+  readIntArrayzh
+  readWordArrayzh
+  readAddrArrayzh
+  readFloatArrayzh
+  readDoubleArrayzh
+  readStablePtrArrayzh
+  readInt8Arrayzh
+  readInt16Arrayzh
+  readInt32Arrayzh
+#ifdef SUPPORT_LONG_LONGS
+  readInt64Arrayzh
+#endif
+  readWord8Arrayzh
+  readWord16Arrayzh
+  readWord32Arrayzh
+#ifdef SUPPORT_LONG_LONGS
+  readWord64Arrayzh
+#endif
+
+  writeArrayzh
+  writeCharArrayzh
+  writeWideCharArrayzh
+  writeIntArrayzh
+  writeWordArrayzh
+  writeAddrArrayzh
+  writeFloatArrayzh
+  writeDoubleArrayzh
+  writeStablePtrArrayzh
+  writeInt8Arrayzh
+  writeInt16Arrayzh
+  writeInt32Arrayzh
+#ifdef SUPPORT_LONG_LONGS
+  writeInt64Arrayzh
+#endif
+  writeWord8Arrayzh
+  writeWord16Arrayzh
+  writeWord32Arrayzh
+#ifdef SUPPORT_LONG_LONGS
+  writeWord64Arrayzh
+#endif
+
+  indexCharOffAddrzh
+  indexWideCharOffAddrzh
+  indexIntOffAddrzh
+  indexWordOffAddrzh
+  indexAddrOffAddrzh
+  indexFloatOffAddrzh
+  indexDoubleOffAddrzh
+  indexStablePtrOffAddrzh
+  indexInt8OffAddrzh
+  indexInt16OffAddrzh
+  indexInt32OffAddrzh
+#ifdef SUPPORT_LONG_LONGS
+  indexInt64OffAddrzh
+#endif
+  indexWord8OffAddrzh
+  indexWord16OffAddrzh
+  indexWord32OffAddrzh
+#ifdef SUPPORT_LONG_LONGS
+  indexWord64OffAddrzh
+#endif
+
+  readCharOffAddrzh
+  readWideCharOffAddrzh
+  readIntOffAddrzh
+  readWordOffAddrzh
+  readAddrOffAddrzh
+  readFloatOffAddrzh
+  readDoubleOffAddrzh
+  readStablePtrOffAddrzh
+  readInt8OffAddrzh
+  readInt16OffAddrzh
+  readInt32OffAddrzh
+#ifdef SUPPORT_LONG_LONGS
+  readInt64OffAddrzh
+#endif
+  readWord8OffAddrzh
+  readWord16OffAddrzh
+  readWord32OffAddrzh
+#ifdef SUPPORT_LONG_LONGS
+  readWord64OffAddrzh
+#endif
+
+  writeCharOffAddrzh
+  writeWideCharOffAddrzh
+  writeIntOffAddrzh
+  writeWordOffAddrzh
+  writeAddrOffAddrzh
+  writeForeignObjOffAddrzh
+  writeFloatOffAddrzh
+  writeDoubleOffAddrzh
+  writeStablePtrOffAddrzh
+  writeInt8OffAddrzh
+  writeInt16OffAddrzh
+  writeInt32OffAddrzh
+#ifdef SUPPORT_LONG_LONGS
+  writeInt64OffAddrzh
+#endif
+  writeWord8OffAddrzh
+  writeWord16OffAddrzh
+  writeWord32OffAddrzh
+#ifdef SUPPORT_LONG_LONGS
+  writeWord64OffAddrzh
+#endif
+
+  eqForeignObjzh
+  indexCharOffForeignObjzh
+  indexWideCharOffForeignObjzh
+  indexIntOffForeignObjzh
+  indexWordOffForeignObjzh
+  indexAddrOffForeignObjzh
+  indexFloatOffForeignObjzh
+  indexDoubleOffForeignObjzh
+  indexStablePtrOffForeignObjzh
+  indexInt8OffForeignObjzh
+  indexInt16OffForeignObjzh
+  indexInt32OffForeignObjzh
+#ifdef SUPPORT_LONG_LONGS
+  indexInt64OffForeignObjzh
+#endif
+  indexWord8OffForeignObjzh
+  indexWord16OffForeignObjzh
+  indexWord32OffForeignObjzh
+#ifdef SUPPORT_LONG_LONGS
+  indexWord64OffForeignObjzh
+#endif
+
+  unsafeFreezzeArrayzh         -- Note zz in the middle
+  unsafeFreezzeByteArrayzh     -- Ditto
+
+  unsafeThawArrayzh
+
+  sizzeofByteArrayzh           -- Ditto
+  sizzeofMutableByteArrayzh    -- Ditto
+
+  MutVarzh
+  newMutVarzh
+  readMutVarzh
+  writeMutVarzh
+  sameMutVarzh
+
+  catchzh
+  raisezh
+
+  Weakzh
+  mkWeakzh
+  deRefWeakzh
+  finalizzeWeakzh
+
+  ForeignObjzh
+  mkForeignObjzh
+  writeForeignObjzh
+  foreignObjToAddrzh
+  touchzh
+
+  StablePtrzh
+  makeStablePtrzh
+  deRefStablePtrzh
+  eqStablePtrzh
+
+  StableNamezh
+  makeStableNamezh
+  eqStableNamezh
+  stableNameToIntzh
+
+  reallyUnsafePtrEqualityzh
+
+  newBCOzh
+  BCOzh
+  mkApUpd0zh
+
+  unsafeCoercezh
+  addrToHValuezh
+;
+
+-- Export PrelErr.error, so that others do not 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 ;
+
+-- These guys do not 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)} ;