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
128 #if WORD_SIZE_IN_BITS < 32
133 #if WORD_SIZE_IN_BITS < 64
143 #if (WORD_SIZE_IN_BITS == 32 || WORD_SIZE_IN_BITS == 64)
231 #if WORD_SIZE_IN_BITS < 32
237 #if WORD_SIZE_IN_BITS < 64
253 sameMutableByteArrayzh
267 indexStablePtrArrayzh
303 writeStablePtrArrayzh
314 indexWideCharOffAddrzh
320 indexStablePtrOffAddrzh
331 readWideCharOffAddrzh
337 readStablePtrOffAddrzh
348 writeWideCharOffAddrzh
352 writeForeignObjOffAddrzh
355 writeStablePtrOffAddrzh
366 indexCharOffForeignObjzh
367 indexWideCharOffForeignObjzh
368 indexIntOffForeignObjzh
369 indexWordOffForeignObjzh
370 indexAddrOffForeignObjzh
371 indexFloatOffForeignObjzh
372 indexDoubleOffForeignObjzh
373 indexStablePtrOffForeignObjzh
374 indexInt8OffForeignObjzh
375 indexInt16OffForeignObjzh
376 indexInt32OffForeignObjzh
377 indexInt64OffForeignObjzh
378 indexWord8OffForeignObjzh
379 indexWord16OffForeignObjzh
380 indexWord32OffForeignObjzh
381 indexWord64OffForeignObjzh
383 unsafeFreezzeArrayzh -- Note zz in the middle
384 unsafeFreezzeByteArrayzh -- Ditto
388 sizzeofByteArrayzh -- Ditto
389 sizzeofMutableByteArrayzh -- Ditto
421 reallyUnsafePtrEqualityzh
431 -- Export PrelErr.error, so that others do not have to import PrelErr
432 __export PrelErr error ;
436 --------------------------------------------------
437 instance {CCallable Charzh} = zdfCCallableCharzh;
438 instance {CCallable Doublezh} = zdfCCallableDoublezh;
439 instance {CCallable Floatzh} = zdfCCallableFloatzh;
440 instance {CCallable Intzh} = zdfCCallableIntzh;
441 instance {CCallable Addrzh} = zdfCCallableAddrzh;
442 instance {CCallable Int64zh} = zdfCCallableInt64zh;
443 instance {CCallable Word64zh} = zdfCCallableWord64zh;
444 instance {CCallable Wordzh} = zdfCCallableWordzh;
445 instance {CCallable ByteArrayzh} = zdfCCallableByteArrayzh;
446 instance __forall s => {CCallable (MutableByteArrayzh s)} = zdfCCallableMutableByteArrayzh;
447 instance {CCallable ForeignObjzh} = zdfCCallableForeignObjzh;
448 instance __forall s => {CCallable (StablePtrzh s)} = zdfCCallableStablePtrzh;
449 -- CCallable and CReturnable have kind (Type AnyBox) so that
450 -- things like Int# can be instances of CCallable.
451 1 class CCallable a :: ? ;
452 1 class CReturnable a :: ? ;
454 1 assert :: __forall a => PrelBase.Bool -> a -> a ;
456 -- These guys do not really exist:
458 1 zdfCCallableCharzh :: {CCallable Charzh} ;
459 1 zdfCCallableDoublezh :: {CCallable Doublezh} ;
460 1 zdfCCallableFloatzh :: {CCallable Floatzh} ;
461 1 zdfCCallableIntzh :: {CCallable Intzh} ;
462 1 zdfCCallableAddrzh :: {CCallable Addrzh} ;
463 1 zdfCCallableInt64zh :: {CCallable Int64zh} ;
464 1 zdfCCallableWord64zh :: {CCallable Word64zh} ;
465 1 zdfCCallableWordzh :: {CCallable Wordzh} ;
466 1 zdfCCallableByteArrayzh :: {CCallable ByteArrayzh} ;
467 1 zdfCCallableMutableByteArrayzh :: __forall s => {CCallable (MutableByteArrayzh s)} ;
468 1 zdfCCallableForeignObjzh :: {CCallable ForeignObjzh} ;
469 1 zdfCCallableStablePtrzh :: __forall a => {CCallable (StablePtrzh a)} ;