X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fprelude%2FPrelInfo.lhs;h=ea5a996e542147c2fe6f305f11409c474fc58a48;hp=31457b2b630e113fd28ab1b40f7480a777eadfa6;hb=ef61cbbcbf819e7e5930b60de59fb5d550f66e83;hpb=302265d525004c7870864549f7a07a5759d32912 diff --git a/compiler/prelude/PrelInfo.lhs b/compiler/prelude/PrelInfo.lhs index 31457b2..ea5a996 100644 --- a/compiler/prelude/PrelInfo.lhs +++ b/compiler/prelude/PrelInfo.lhs @@ -48,8 +48,24 @@ import Array ( Array, array, (!) ) %* * %************************************************************************ -We have two ``builtin name funs,'' one to look up @TyCons@ and -@Classes@, the other to look up values. +Notes about wired in things +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* Wired-in things are Ids/TyCons that are completely known to the compiler. + They are global values in GHC, (e.g. listTyCon :: TyCon). + +* A wired in Name contains the thing itself inside the Name: + see Name.wiredInNameTyThing_maybe + (E.g. listTyConName contains listTyCon. + +* The name cache is initialised with (the names of) all wired-in things + +* The type checker sees if the Name is wired in before looking up + the name in the type environment. So the type envt itself contains + no wired in things. + +* MkIface prunes out wired-in things before putting them in an interface file. + So interface files never contain wired-in things. + \begin{code} wiredInThings :: [TyThing]