
On 03/03/2010 12:37, Yitzchak Gale wrote:
Jeremy Shaw wrote:
I would still vote for that error in the 'worst ghc error message contest'...
I wrote:
Can't we add something like "(Is there more than one Prelude in your path?)" to the message for Prelude?
Simon Marlow wrote:
So I could add a warning ("Warning: this Prelude module is shadowing the real Prelude", or something), but then we'd need a new flag to turn off the warning if shadowing the Prelude is what you're really trying to do, and that sounds like an awful lot of bother to fix a very rare corner case. Or can anyone think of a better way to handle this?
I was suggesting that whenever the Prelude fails to load, the error message should contain that hint.
hmm, I'll think about that. Is it not enough to see a compilation error pointing to the file Prelude.hs?
We'd also like to help rescue people who get weird behavior when, unbeknownst to them, the wrong Prelude loads successfully. But I understand your point that this second case is trickier and may not be worth the effort.
it's probably not that bad, actually: $ ghc --make hello [1 of 2] Compiling Prelude ( Prelude.hs, Prelude.o ) [2 of 2] Compiling Main ( hello.hs, hello.o ) hello.hs:1:8: Not in scope: `putStr' You can pretty clearly see what happened there. Cheers, Simon