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
55 seq -- Defined in MkId
128 #if WORD_SIZE_IN_BITS < 32
133 #if WORD_SIZE_IN_BITS < 64
139 nullAddrzh -- Defined in MkId
143 #if (WORD_SIZE_IN_BITS == 32 || WORD_SIZE_IN_BITS == 64)
214 -- Integer is implemented by foreign imports on .NET, so no primops
234 #if WORD_SIZE_IN_BITS < 32
240 #if WORD_SIZE_IN_BITS < 64
255 sameMutableByteArrayzh
269 indexStablePtrArrayzh
305 writeStablePtrArrayzh
316 indexWideCharOffAddrzh
322 indexStablePtrOffAddrzh
333 readWideCharOffAddrzh
339 readStablePtrOffAddrzh
350 writeWideCharOffAddrzh
354 writeForeignObjOffAddrzh
357 writeStablePtrOffAddrzh
368 indexCharOffForeignObjzh
369 indexWideCharOffForeignObjzh
370 indexIntOffForeignObjzh
371 indexWordOffForeignObjzh
372 indexAddrOffForeignObjzh
373 indexFloatOffForeignObjzh
374 indexDoubleOffForeignObjzh
375 indexStablePtrOffForeignObjzh
376 indexInt8OffForeignObjzh
377 indexInt16OffForeignObjzh
378 indexInt32OffForeignObjzh
379 indexInt64OffForeignObjzh
380 indexWord8OffForeignObjzh
381 indexWord16OffForeignObjzh
382 indexWord32OffForeignObjzh
383 indexWord64OffForeignObjzh
385 unsafeFreezzeArrayzh -- Note zz in the middle
386 unsafeFreezzeByteArrayzh -- Ditto
390 sizzeofByteArrayzh -- Ditto
391 sizzeofMutableByteArrayzh -- Ditto
427 unsafeCoercezh -- unsafeCoerce# :: forall a b. a -> b
428 -- It's defined in ghc/compiler/basicTypes/MkId.lhs
432 -- Export PrelErr.error, so that others do not have to import PrelErr
433 __export PrelErr error ;
437 --------------------------------------------------
438 instance {CCallable Charzh} = zdfCCallableCharzh;
439 instance {CCallable Doublezh} = zdfCCallableDoublezh;
440 instance {CCallable Floatzh} = zdfCCallableFloatzh;
441 instance {CCallable Intzh} = zdfCCallableIntzh;
442 instance {CCallable Addrzh} = zdfCCallableAddrzh;
443 instance {CCallable Int64zh} = zdfCCallableInt64zh;
444 instance {CCallable Word64zh} = zdfCCallableWord64zh;
445 instance {CCallable Wordzh} = zdfCCallableWordzh;
446 instance {CCallable ByteArrayzh} = zdfCCallableByteArrayzh;
447 instance __forall s => {CCallable (MutableByteArrayzh s)} = zdfCCallableMutableByteArrayzh;
448 instance {CCallable ForeignObjzh} = zdfCCallableForeignObjzh;
449 instance __forall s => {CCallable (StablePtrzh s)} = zdfCCallableStablePtrzh;
450 -- CCallable and CReturnable have kind (Type AnyBox) so that
451 -- things like Int# can be instances of CCallable.
452 1 class CCallable a :: ? ;
453 1 class CReturnable a :: ? ;
455 1 assert :: __forall a => PrelBase.Bool -> a -> a ;
457 -- These guys do not really exist:
459 1 zdfCCallableCharzh :: {CCallable Charzh} ;
460 1 zdfCCallableDoublezh :: {CCallable Doublezh} ;
461 1 zdfCCallableFloatzh :: {CCallable Floatzh} ;
462 1 zdfCCallableIntzh :: {CCallable Intzh} ;
463 1 zdfCCallableAddrzh :: {CCallable Addrzh} ;
464 1 zdfCCallableInt64zh :: {CCallable Int64zh} ;
465 1 zdfCCallableWord64zh :: {CCallable Word64zh} ;
466 1 zdfCCallableWordzh :: {CCallable Wordzh} ;
467 1 zdfCCallableByteArrayzh :: {CCallable ByteArrayzh} ;
468 1 zdfCCallableMutableByteArrayzh :: __forall s => {CCallable (MutableByteArrayzh s)} ;
469 1 zdfCCallableForeignObjzh :: {CCallable ForeignObjzh} ;
470 1 zdfCCallableStablePtrzh :: __forall a => {CCallable (StablePtrzh a)} ;