Misleading error message
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
| -----Original Message-----
| From: glasgow-haskell-users-bounces at haskell.org
| 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
| adventure he had this week together with the compiler ghc. Although
| exciting, this adventure took him several hours and Josef would have
| happier without it. So he appeals to the implementors to improve on
| 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
| 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,
| a while Josef realised that the name "InterfaceParse" was not in par
| his naming convention and decided to rename the module to
| "InterfaceParser". Now, here is where the real adventure started.
| changed the name of the file to "InterfaceParser.lhs" but forgot to
| the module declaration in the file. In the file one could still read
| "module InterfaceParse ..."
| Unknowing of his mistake, Josef carried on and changed the import to
| importing the module "InterfaceParser" instead of "InterfaceParse".
| make sure everything had gone right he recompiled his project. And
| The compiler complained. What did it say? The compiler said it could
| find the interface for the module "InterfaceParse"! Josef was very
| 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 which didn't exist. All the time, whenever he was trying to
| a non-existing module the compiler would correctly complain that the
| interface was missing. But as soon as he tried to import
| the compiler would complain that it couldn't find "InterfaceParse".
| There where times when Josef thought someone was playing him a
| joke. Maybe Simon Peyton Jones had come up with a devious plan on how
| 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,
| he should have checked his files better. But Josef believes that the
| message he got from the compiler was very misleading and led him away
| finding the true source of the error. Dear implementors, please
| 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
More information about the Glasgow-haskell-users