Misleading error message

Simon Peyton-Jones simonpj at microsoft.com
Fri Mar 5 15:38:04 EST 2004


Good story.  The error message is indeed misleading.

We've clarified the documentation in the HEAD, and vastly improved the
error message.  We'll merge the fix into 6.2 if it's not too hard to do
so.

Simon

| -----Original Message-----
| From: glasgow-haskell-users-bounces at haskell.org
[mailto:glasgow-haskell-users-
| bounces at haskell.org] On Behalf Of Josef Svenningsson
| Sent: 05 March 2004 11:36
| To: glasgow-haskell-users at haskell.org
| Subject: Misleading error message
| 
| Hi all,
| 
| This mail is a little story about a little guy called Josef and a
little
| adventure he had this week together with the compiler ghc. Although
| exciting, this adventure took him several hours and Josef would have
been
| happier without it. So he appeals to the implementors to improve on
the
| situation so that others may not have to embark on the same journey.
| 
| OK, here's the story.
| 
| Josef has a rather large program which he is writing. It contains many
| haskell modules spread out over several directories. Early this week
Josef
| decided to add yet another module. He decided to call this module
| "InterfaceParse". So he created a file "InterfaceParse.lhs", filled it
| with nice haskell code and imported it in another haskell file. Now,
after
| a while Josef realised that the name "InterfaceParse" was not in par
with
| his naming convention and decided to rename the module to
| "InterfaceParser". Now, here is where the real adventure started.
Josef
| changed the name of the file to "InterfaceParser.lhs" but forgot to
change
| the module declaration in the file. In the file one could still read
the
| text:
| "module InterfaceParse ..."
| 
| Unknowing of his mistake, Josef carried on and changed the import to
| importing the module "InterfaceParser" instead of "InterfaceParse".
And to
| make sure everything had gone right he recompiled his project. And
behold!
| The compiler complained. What did it say? The compiler said it could
not
| find the interface for the module "InterfaceParse"! Josef was very
puzzled
| by this. Was his import statement wrong? No. Then why was the compiler
| looking for the interface "InterfaceParse" when it should look for
| "InterfaceParser"? He started to experiment with importing other
modules,
| modules which didn't exist. All the time, whenever he was trying to
import
| a non-existing module the compiler would correctly complain that the
| interface was missing. But as soon as he tried to import
"InterfaceParser"
| the compiler would complain that it couldn't find "InterfaceParse".
| 
| There where times when Josef thought someone was playing him a
practical
| joke. Maybe Simon Peyton Jones had come up with a devious plan on how
to
| make money from his compiler? By adding some obscure bug which would
| trigger very rarely he could then ask people for money to fix the bug.
| 
| After much desperation and consulation with others Josef finally
| discovered his error.
| 
| One might say that Josef should have understood his error right away,
that
| he should have checked his files better. But Josef believes that the
error
| message he got from the compiler was very misleading and led him away
from
| finding the true source of the error. Dear implementors, please
improve
| the error reporting in this case.
| 
| 
| /Josef (first time he has ever written about himself in third person)
| 
| By the way, Josef is using ghc-6.2 on a solaris machine.
| _______________________________________________
| Glasgow-haskell-users mailing list
| Glasgow-haskell-users at haskell.org
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


More information about the Glasgow-haskell-users mailing list