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 ;
435 --------------------------------------------------
436 instance {CCallable Charzh} = zdfCCallableCharzh;
437 instance {CCallable Doublezh} = zdfCCallableDoublezh;
438 instance {CCallable Floatzh} = zdfCCallableFloatzh;
439 instance {CCallable Intzh} = zdfCCallableIntzh;
440 instance {CCallable Addrzh} = zdfCCallableAddrzh;
441 instance {CCallable Int64zh} = zdfCCallableInt64zh;
442 instance {CCallable Word64zh} = zdfCCallableWord64zh;
443 instance {CCallable Wordzh} = zdfCCallableWordzh;
444 instance {CCallable ByteArrayzh} = zdfCCallableByteArrayzh;
445 instance __forall s => {CCallable (MutableByteArrayzh s)} = zdfCCallableMutableByteArrayzh;
446 instance {CCallable ForeignObjzh} = zdfCCallableForeignObjzh;
447 instance __forall s => {CCallable (StablePtrzh s)} = zdfCCallableStablePtrzh;
448 -- CCallable and CReturnable have kind (Type AnyBox) so that
449 -- things like Int# can be instances of CCallable.
450 1 class CCallable a :: ? ;
451 1 class CReturnable a :: ? ;
453 1 assert :: __forall a => PrelBase.Bool -> a -> a ;
455 -- These guys do not really exist:
457 1 zdfCCallableCharzh :: {CCallable Charzh} ;
458 1 zdfCCallableDoublezh :: {CCallable Doublezh} ;
459 1 zdfCCallableFloatzh :: {CCallable Floatzh} ;
460 1 zdfCCallableIntzh :: {CCallable Intzh} ;
461 1 zdfCCallableAddrzh :: {CCallable Addrzh} ;
462 1 zdfCCallableInt64zh :: {CCallable Int64zh} ;
463 1 zdfCCallableWord64zh :: {CCallable Word64zh} ;
464 1 zdfCCallableWordzh :: {CCallable Wordzh} ;
465 1 zdfCCallableByteArrayzh :: {CCallable ByteArrayzh} ;
466 1 zdfCCallableMutableByteArrayzh :: __forall s => {CCallable (MutableByteArrayzh s)} ;
467 1 zdfCCallableForeignObjzh :: {CCallable ForeignObjzh} ;
468 1 zdfCCallableStablePtrzh :: __forall a => {CCallable (StablePtrzh a)} ;