`[source] `_ compiler/prelude/PrelInfo.hs ============================ Note [About wired-in things] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `[note link] `__ * 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 (except tuples and sums; see Note [Known-]) * The type environment itself contains no wired in things. The type checker sees if the Name is wired in before looking up the name in the type environment. * MkIface prunes out wired-in things before putting them in an interface file. So interface files never contain wired-in things.