Do not put wired-in things in interface files
authorsimonpj@microsoft.com <unknown>
Mon, 8 May 2006 14:29:46 +0000 (14:29 +0000)
committersimonpj@microsoft.com <unknown>
Mon, 8 May 2006 14:29:46 +0000 (14:29 +0000)
commitef61cbbcbf819e7e5930b60de59fb5d550f66e83
tree6b1191fdf114c618b8549e92ac6bf4d4b3b8c69c
parent302265d525004c7870864549f7a07a5759d32912
Do not put wired-in things in interface files

There is no need for wired-in things to go into interface files; the compiler
knows about them anyway.  Worse, it turns ou that if they are in an interface
file, they may get read in with not-quite-right type info (e.g. GHC.Err.error),
and the not-quite-right thing gets into the type envt.  Than it gets used
instead of the wired in thing.

Best all round never to put them into interface files.  This is the way
it used to be, but it looks as if it rotted away some time ago.

(I noticed this when fixing unsafePerformIO stuff, becuase 'lazy' was getting
an unfolding when it shouldn't.)
compiler/iface/MkIface.lhs
compiler/prelude/PrelInfo.lhs