1 ---------------------------------------------------------------------------
4 -- This hand-written interface file allows you to bring into scope the
5 -- primitive operations and types that GHC knows about.
6 ---------------------------------------------------------------------------
10 __interface "std" PrelGHC 1 0 where
19 -- Magical assert thingy
32 -- Concurrency primitives
38 blockAsyncExceptionszh
39 unblockAsyncExceptionszh
125 #if WORD_SIZE_IN_BITS < 32
130 #if WORD_SIZE_IN_BITS < 64
140 #if (WORD_SIZE_IN_BITS == 32 || WORD_SIZE_IN_BITS == 64)
228 #if WORD_SIZE_IN_BITS < 32
234 #if WORD_SIZE_IN_BITS < 64
250 sameMutableByteArrayzh
264 indexStablePtrArrayzh
300 writeStablePtrArrayzh
311 indexWideCharOffAddrzh
317 indexStablePtrOffAddrzh
328 readWideCharOffAddrzh
334 readStablePtrOffAddrzh
345 writeWideCharOffAddrzh
349 writeForeignObjOffAddrzh
352 writeStablePtrOffAddrzh
363 indexCharOffForeignObjzh
364 indexWideCharOffForeignObjzh
365 indexIntOffForeignObjzh
366 indexWordOffForeignObjzh
367 indexAddrOffForeignObjzh
368 indexFloatOffForeignObjzh
369 indexDoubleOffForeignObjzh
370 indexStablePtrOffForeignObjzh
371 indexInt8OffForeignObjzh
372 indexInt16OffForeignObjzh
373 indexInt32OffForeignObjzh
374 indexInt64OffForeignObjzh
375 indexWord8OffForeignObjzh
376 indexWord16OffForeignObjzh
377 indexWord32OffForeignObjzh
378 indexWord64OffForeignObjzh
380 unsafeFreezzeArrayzh -- Note zz in the middle
381 unsafeFreezzeByteArrayzh -- Ditto
385 sizzeofByteArrayzh -- Ditto
386 sizzeofMutableByteArrayzh -- Ditto
418 reallyUnsafePtrEqualityzh
428 -- Export PrelErr.error, so that others do not have to import PrelErr
429 __export PrelErr error ;
432 --------------------------------------------------
433 instance {CCallable Charzh} = zdfCCallableCharzh;
434 instance {CCallable Doublezh} = zdfCCallableDoublezh;
435 instance {CCallable Floatzh} = zdfCCallableFloatzh;
436 instance {CCallable Intzh} = zdfCCallableIntzh;
437 instance {CCallable Addrzh} = zdfCCallableAddrzh;
438 instance {CCallable Int64zh} = zdfCCallableInt64zh;
439 instance {CCallable Word64zh} = zdfCCallableWord64zh;
440 instance {CCallable Wordzh} = zdfCCallableWordzh;
441 instance {CCallable ByteArrayzh} = zdfCCallableByteArrayzh;
442 instance __forall s => {CCallable (MutableByteArrayzh s)} = zdfCCallableMutableByteArrayzh;
443 instance {CCallable ForeignObjzh} = zdfCCallableForeignObjzh;
444 instance __forall s => {CCallable (StablePtrzh s)} = zdfCCallableStablePtrzh;
445 -- CCallable and CReturnable have kind (Type AnyBox) so that
446 -- things like Int# can be instances of CCallable.
447 1 class CCallable a :: ? ;
448 1 class CReturnable a :: ? ;
450 1 assert :: __forall a => PrelBase.Bool -> a -> a ;
452 -- These guys do not really exist:
454 1 zdfCCallableCharzh :: {CCallable Charzh} ;
455 1 zdfCCallableDoublezh :: {CCallable Doublezh} ;
456 1 zdfCCallableFloatzh :: {CCallable Floatzh} ;
457 1 zdfCCallableIntzh :: {CCallable Intzh} ;
458 1 zdfCCallableAddrzh :: {CCallable Addrzh} ;
459 1 zdfCCallableInt64zh :: {CCallable Int64zh} ;
460 1 zdfCCallableWord64zh :: {CCallable Word64zh} ;
461 1 zdfCCallableWordzh :: {CCallable Wordzh} ;
462 1 zdfCCallableByteArrayzh :: {CCallable ByteArrayzh} ;
463 1 zdfCCallableMutableByteArrayzh :: __forall s => {CCallable (MutableByteArrayzh s)} ;
464 1 zdfCCallableForeignObjzh :: {CCallable ForeignObjzh} ;
465 1 zdfCCallableStablePtrzh :: __forall a => {CCallable (StablePtrzh a)} ;