
Chris Eidhof writes:
On Mar 24, 2007, at 2:36 AM, Sebastian Sylvan wrote:
The solution is simple:
* If there is a "module M where" clause in the beginning of the file, then it's a "proper" module and shouldn't import the Prelude. * If there is no module declaration then it's a "quick'n dirty script" and should have the Prelude implicitly imported. * Interactive interpreters should probably import the Prelude.
So if I'm writing a script, which has been working, then import Control.Monad, it all suddenly stops working?
No, that's an import declaration, not a module declaration.
So far, this is my favorite proposal, but I'm not sure it's better than
leaving things the way they are. There's a lot of useful stuff in the
Prelude, so the typical usage is likely to be "import Prelude hiding
(...)", which you can do right now.
On the other hand, making this like this explicit seems consistent with
Haskell's traditions.
--
David Menendez