[project @ 2001-01-15 09:55:41 by sewardj]
[ghc-hetmet.git] / ghc / lib / std / PrelGHC.hi-boot
index a3bedc7..b23a0a0 100644 (file)
 ---------------------------------------------------------------------------
---                             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
-_exports_
-PrelGHC
-  ->
+__interface "rts" PrelGHC 1 0 where
+
+__export PrelGHC
+
+  ZLzmzgZR     -- (->)
 
-  All  -- Pseudo class used for universal quantification
   CCallable
   CReturnable
 
-  Void
--- void CAF is defined in PrelBase
-
 -- Magical assert thingy
   assert
 
--- I/O primitives
+  -- constructor tags
+  tagToEnumzh
+  getTagzh
+  dataToTagzh
+
+  -- I/O primitives
   RealWorld
-  realWorld#
-  State#
-
-  fork#
-  delay# 
-  seq#
-  par#
-  parGlobal#
-  parLocal#
-  parAt#
-  parAtAbs#
-  parAtRel#
-  parAtForNow#
-
-  SynchVar#
-  sameMVar#
-  newSynchVar#
-  takeMVar#
-  putMVar#
-  waitRead#
-  waitWrite#
-  
-  errorIO#
-  
-  Char# 
-  gtChar#
-  geChar#
-  eqChar#
-  neChar#
-  ltChar#
-  leChar#
-  ord#
-  chr#
-  
-  Int#
-  >#
-  >=#
-  ==#
-  /=#
-  <#
-  <=#
-  +#
-  -#
-  *#
-  /#
-  quotInt#
-  remInt#
-  negateInt#
-  iShiftL#
-  iShiftRA#
-  iShiftRL#
-  
-  Word#
-  gtWord#
-  geWord#
-  eqWord#
-  neWord#
-  ltWord#
-  leWord#
-  quotWord#
-  remWord#
-  and#
-  or#
-  not#
-  xor#
-  shiftL#
-  shiftRA#
-  shiftRL#
-  int2Word#
-  word2Int#
+  realWorldzh
+  Statezh
+
+  -- Concurrency primitives
+  ThreadIdzh
+  myThreadIdzh
+  forkzh
+  yieldzh
+  killThreadzh
+  blockAsyncExceptionszh
+  unblockAsyncExceptionszh
+  delayzh
+  waitReadzh
+  waitWritezh
+
+  -- MVars
+  MVarzh
+  sameMVarzh
+  newMVarzh
+  takeMVarzh
+  putMVarzh
+  tryTakeMVarzh
+  isEmptyMVarzh
   
-  Word64#
-
-  Int64#
-
-  Addr#
-  gtAddr#
-  geAddr#
-  eqAddr#
-  neAddr#
-  ltAddr#
-  leAddr#
-  int2Addr#
-  addr2Int#
+  -- Parallel
+  seqzh
+  parzh
+  parGlobalzh
+  parLocalzh
+  parAtzh
+  parAtAbszh
+  parAtRelzh
+  parAtForNowzh
+
+  -- Character Type
+  Charzh 
+  gtCharzh
+  geCharzh
+  eqCharzh
+  neCharzh
+  ltCharzh
+  leCharzh
+  ordzh
+  chrzh
   
-  Float#
-  gtFloat#
-  geFloat#
-  eqFloat#
-  neFloat#
-  ltFloat#
-  leFloat#
-  plusFloat#
-  minusFloat#
-  timesFloat#
-  divideFloat#
-  negateFloat#
-  float2Int#
-  int2Float#
-  expFloat#
-  logFloat#
-  sqrtFloat#
-  sinFloat#
-  cosFloat#
-  tanFloat#
-  asinFloat#
-  acosFloat#
-  atanFloat#
-  sinhFloat#
-  coshFloat#
-  tanhFloat#
-  powerFloat#
-  decodeFloat#
-  encodeFloat#
+  -- Int Type
+  Intzh
+  zgzh
+  zgzezh
+  zezezh
+  zszezh
+  zlzh
+  zlzezh
+  zpzh
+  zmzh
+  ztzh
+  quotIntzh
+  remIntzh
+  gcdIntzh
+  negateIntzh
+  iShiftLzh
+  iShiftRAzh
+  iShiftRLzh
+  addIntCzh
+  subIntCzh
+  mulIntCzh
   
-  Double#
-  >##
-  >=##
-  ==##
-  /=##
-  <##
-  <=##
-  +##
-  -##
-  *##
-  /##
-  negateDouble#
-  double2Int#
-  int2Double#
-  double2Float#
-  float2Double#
-  expDouble#
-  logDouble#
-  sqrtDouble#
-  sinDouble#
-  cosDouble#
-  tanDouble#
-  asinDouble#
-  acosDouble#
-  atanDouble#
-  sinhDouble#
-  coshDouble#
-  tanhDouble#
-  **##
-  decodeDouble#
-  encodeDouble#
+  Wordzh
+  gtWordzh
+  geWordzh
+  eqWordzh
+  neWordzh
+  ltWordzh
+  leWordzh
+  quotWordzh
+  remWordzh
+  andzh
+  orzh
+  notzh
+  xorzh
+  shiftLzh
+--  shiftRAzh
+  shiftRLzh
+  int2Wordzh
+  word2Intzh
   
-  cmpInteger#
-  negateInteger#
-  plusInteger#
-  minusInteger#
-  timesInteger#
-  quotRemInteger#
-  integer2Int#
-  integer2Word#
-  int2Integer#
-  word2Integer#
-  integerToInt64#
-  integerToWord64#
-  int64ToInteger#
-  word64ToInteger#
+  Word64zh
+
+  Int64zh
+
+  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
   
-  Array#
-  ByteArray#
-  MutableArray#
-  MutableByteArray#
+  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
   
-  sameMutableArray#
-  sameMutableByteArray#
+  cmpIntegerzh
+  cmpIntegerIntzh
+  plusIntegerzh
+  minusIntegerzh
+  timesIntegerzh
+  gcdIntegerzh
+  quotIntegerzh
+  remIntegerzh
+  gcdIntegerzh
+  gcdIntegerIntzh
+  divExactIntegerzh
+  quotRemIntegerzh
+  divModIntegerzh
+  integer2Intzh
+  integer2Wordzh
+  int2Integerzh
+  word2Integerzh
+  integerToInt64zh
+  integerToWord64zh
+  int64ToIntegerzh
+  word64ToIntegerzh
+  andIntegerzh
+  orIntegerzh
+  xorIntegerzh
+  complementIntegerzh
+
+  Arrayzh
+  ByteArrayzh
+  MutableArrayzh
+  MutableByteArrayzh
   
-  newArray#
-  newCharArray#
-  newIntArray#
-  newWordArray#
-  newFloatArray#
-  newDoubleArray#
-  newAddrArray#
-  newStablePtrArray#
+  sameMutableArrayzh
+  sameMutableByteArrayzh
   
-  indexArray#
-  indexCharArray#
-  indexIntArray#
-  indexWordArray#
-  indexFloatArray#
-  indexDoubleArray#
-  indexAddrArray#
-  indexStablePtrArray#
-  indexInt64Array#
-  indexWord64Array#
+  newArrayzh
+  newByteArrayzh
   
---  indexOffAddr#
-indexCharOffAddr#
-indexIntOffAddr#
-indexWordOffAddr#
-indexAddrOffAddr#
-indexFloatOffAddr#
-indexDoubleOffAddr#
-indexStablePtrOffAddr#
-indexInt64OffAddr#
-indexWord64OffAddr#
-
-writeCharOffAddr#
-writeIntOffAddr#
-writeWordOffAddr#
-writeAddrOffAddr#
-writeForeignObjOffAddr#
-writeFloatOffAddr#
-writeDoubleOffAddr#
-writeStablePtrOffAddr#
-writeInt64OffAddr#
-writeWord64OffAddr#
-
---  indexOffForeignObj#
-indexCharOffForeignObj#
-indexIntOffForeignObj#
-indexWordOffForeignObj#
-indexAddrOffForeignObj#
-indexFloatOffForeignObj#
-indexDoubleOffForeignObj#
-indexStablePtrOffForeignObj#
-indexInt64OffForeignObj#
-indexWord64OffForeignObj#
+  indexArrayzh
+  indexCharArrayzh
+  indexIntArrayzh
+  indexWordArrayzh
+  indexFloatArrayzh
+  indexDoubleArrayzh
+  indexAddrArrayzh
+  indexStablePtrArrayzh
+  indexInt8Arrayzh
+  indexInt16Arrayzh
+  indexInt32Arrayzh
+  indexInt64Arrayzh
+  indexWord8Arrayzh
+  indexWord16Arrayzh
+  indexWord32Arrayzh
+  indexWord64Arrayzh
   
-  writeArray#
-  writeCharArray#
-  writeIntArray#
-  writeWordArray#
-  writeFloatArray#
-  writeDoubleArray#
-  writeAddrArray#
-  writeStablePtrArray#
-  writeInt64Array#
-  writeWord64Array#
+--  indexOffAddrzh
+  indexCharOffAddrzh
+  indexIntOffAddrzh
+  indexWordOffAddrzh
+  indexAddrOffAddrzh
+  indexFloatOffAddrzh
+  indexDoubleOffAddrzh
+  indexStablePtrOffAddrzh
+  indexInt8OffAddrzh
+  indexInt16OffAddrzh
+  indexInt32OffAddrzh
+  indexInt64OffAddrzh
+  indexWord8OffAddrzh
+  indexWord16OffAddrzh
+  indexWord32OffAddrzh
+  indexWord64OffAddrzh
   
-  readArray#
-  readCharArray#
-  readIntArray#
-  readWordArray#
-  readFloatArray#
-  readDoubleArray#
-  readAddrArray#
-  readStablePtrArray#
-  readInt64Array#
-  readWord64Array#
+  readCharOffAddrzh
+  readIntOffAddrzh
+  readWordOffAddrzh
+  readAddrOffAddrzh
+  readFloatOffAddrzh
+  readDoubleOffAddrzh
+  readStablePtrOffAddrzh
+  readInt8OffAddrzh
+  readInt16OffAddrzh
+  readInt32OffAddrzh
+  readInt64OffAddrzh
+  readWord8OffAddrzh
+  readWord16OffAddrzh
+  readWord32OffAddrzh
+  readWord64OffAddrzh
+
+  writeCharOffAddrzh
+  writeIntOffAddrzh
+  writeWordOffAddrzh
+  writeAddrOffAddrzh
+  writeForeignObjOffAddrzh
+  writeFloatOffAddrzh
+  writeDoubleOffAddrzh
+  writeStablePtrOffAddrzh
+  writeInt8OffAddrzh
+  writeInt16OffAddrzh
+  writeInt32OffAddrzh
+  writeInt64OffAddrzh
+  writeWord8OffAddrzh
+  writeWord16OffAddrzh
+  writeWord32OffAddrzh
+  writeWord64OffAddrzh
+
+--  indexOffForeignObjzh
+  indexCharOffForeignObjzh
+  indexIntOffForeignObjzh
+  indexWordOffForeignObjzh
+  indexAddrOffForeignObjzh
+  indexFloatOffForeignObjzh
+  indexDoubleOffForeignObjzh
+  indexStablePtrOffForeignObjzh
+  indexInt8OffForeignObjzh
+  indexInt16OffForeignObjzh
+  indexInt32OffForeignObjzh
+  indexInt64OffForeignObjzh
+  indexWord8OffForeignObjzh
+  indexWord16OffForeignObjzh
+  indexWord32OffForeignObjzh
+  indexWord64OffForeignObjzh
   
-  unsafeFreezeArray#
-  unsafeFreezeByteArray#
+  writeArrayzh
+  writeCharArrayzh
+  writeIntArrayzh
+  writeWordArrayzh
+  writeFloatArrayzh
+  writeDoubleArrayzh
+  writeAddrArrayzh
+  writeStablePtrArrayzh
+  writeInt8Arrayzh
+  writeInt16Arrayzh
+  writeInt32Arrayzh
+  writeInt64Arrayzh
+  writeWord8Arrayzh
+  writeWord16Arrayzh
+  writeWord32Arrayzh
+  writeWord64Arrayzh
   
-  sizeofByteArray#
-  sizeofMutableByteArray#
+  readArrayzh
+  readCharArrayzh
+  readIntArrayzh
+  readWordArrayzh
+  readFloatArrayzh
+  readDoubleArrayzh
+  readAddrArrayzh
+  readStablePtrArrayzh
+  readInt8Arrayzh
+  readInt16Arrayzh
+  readInt32Arrayzh
+  readInt64Arrayzh
+  readWord8Arrayzh
+  readWord16Arrayzh
+  readWord32Arrayzh
+  readWord64Arrayzh
 
-  ForeignObj#
-  makeForeignObj#
-  writeForeignObj#
-  
-  StablePtr#
-  makeStablePtr#
-  deRefStablePtr#
-  reallyUnsafePtrEquality#
+  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
 
-  unsafeCoerce#
+  StablePtrzh
+  makeStablePtrzh
+  deRefStablePtrzh
+  eqStablePtrzh
+
+  StableNamezh
+  makeStableNamezh
+  eqStableNamezh
+  stableNameToIntzh
+
+  indexPtrOffClosurezh
+  indexWordOffClosurezh
+  setPtrOffClosurezh
+  setWordOffClosurezh
+
+  reallyUnsafePtrEqualityzh
+
+  newBCOzh
+  BCOzh
+  mkApUpd0zh
+
+  unsafeCoercezh
+  addrToHValuezh
 ;
 
-_declarations_
+-- 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 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)} ;