[GHC] #13893: Improved Help for Control.Concurrent and Control.Exception when "variable not in scope"
GHC
ghc-devs at haskell.org
Sun Jul 2 17:56:19 UTC 2017
#13893: Improved Help for Control.Concurrent and Control.Exception when "variable
not in scope"
-------------------------------------+-------------------------------------
Reporter: vanto | Owner: (none)
Type: feature request | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.0.2
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: Poor/confusing | Unknown/Multiple
error message | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by vanto):
Replying to [[span(style=color: #FF0000, slyfox )]]:\\
>Why take preference of packages coming with ghc in this case?\\
Because these are the main libraries, of course. Those related to Haskell
standard Prelude. (e.g Data.Char, Control.Applicative, Control.Monad,
Data.Monoid, Data.Foldable and so on)\\\\
>It's not always the case that user wants to use base's primitives.\\
so what?\\\\
>I would say suggesting incorrect module imports would lead to more
confusion.\\
You do not trust the compiler?\\
Dr. Bjarne Stroustrup said that you should always trust the answers given
by the compiler. And he's right. So that GHC gives the right answers, you
have to program it in this way. it is obvious.\\
If the compiler is able to recognize the variables that belong to a module
( which I quote above) it must be able to suggest the appropriate
module.\\
__And to go further if the compiler is able to suggest the right module it
must be able to compile it independently of the programmer.__\\
The compiler is able to recognize many of the leading pragmas (file-header
LANGUAGE pragmas).
Experiencing yourself by writing a few expressions that need their pragmas
to work, but do not write them and compile the file.
You will be surprised to see how well the compiler is able to recognize
them and to propose them to the programmer to insert them in the program.
Even changes the order of the functions in the file. Moves the first
function to the end for example and writes the function from end to
beginning. Done with functions using various pragmas and you will be even
more surprised.\\
__What the compiler can do is marvellous.__\\\\
>Which procedure should define which packages (and modules) are blessed to
deliver suggestions for symbols?\\
I do not quite understand the question.\\
But if you talk about the code that makes it work it would be the same
procedure which defines the pragmas I suppose or another choice that
remains to be defined.\\\\
>As ticket's subject is worded why Control.Concurrent and
Control.Exception should be threated special?\\
Not at all. These modules are examples. The subject is badly defined in
the ticket.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13893#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list