Do not put wired-in things in interface files
[ghc-hetmet.git] / compiler / prelude / PrelInfo.lhs
index 31457b2..ea5a996 100644 (file)
@@ -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]