X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=docs%2Fcomm%2Frts-libs%2Fprelfound.html;fp=docs%2Fcomm%2Frts-libs%2Fprelfound.html;h=25407eed43c7433a2fbede4ad71a8250da8e011a;hp=0000000000000000000000000000000000000000;hb=0065d5ab628975892cea1ec7303f968c3338cbe1;hpb=28a464a75e14cece5db40f2765a29348273ff2d2 diff --git a/docs/comm/rts-libs/prelfound.html b/docs/comm/rts-libs/prelfound.html new file mode 100644 index 0000000..25407ee --- /dev/null +++ b/docs/comm/rts-libs/prelfound.html @@ -0,0 +1,57 @@ + + + + + The GHC Commentary - Prelude Foundations + + + +

The GHC Commentary - Prelude Foundations

+

+ The standard Haskell Prelude as well as GHC's Prelude extensions are + constructed from GHC's primitives in a + couple of layers. + +

PrelBase.lhs

+

+ Some most elementary Prelude definitions are collected in PrelBase.lhs. + In particular, it defines the boxed versions of Haskell primitive types + - for example, Int is defined as +

+data Int = I# Int#
+
+

+ Saying that a boxed integer Int is formed by applying the + data constructor I# to an unboxed integer of type + Int#. Unboxed types are hardcoded in the compiler and + exported together with the primitive + operations understood by GHC. +

+ PrelBase.lhs similarly defines basic types, such as, + boolean values +

+data  Bool  =  False | True  deriving (Eq, Ord)
+
+

+ the unit type +

+data  ()  =  ()
+
+

+ and lists +

+data [] a = [] | a : [a]
+
+

+ It also contains instance delarations for these types. In addition, + PrelBase.lhs contains some tricky + machinery for efficient list handling. + +

+ +Last modified: Wed Aug 8 19:30:18 EST 2001 + + + +