Just to get things clear...It's like saying that if you shouldn't care if you have a broken leg, just grab a crutch and you are good to go: "don't bother going to a physiotherapist."
I'm not saying that folding is a bad thing.
But it is not a valid reason to invalidate a "import at bottom" feature.
The code analysis situations are valid reasons, but I still prefer the language to be easier to man than to machine. Adding them at the bottom would incur an absurd overhead? You don't need to scan the file looking for imports, you can scan bottom-up the same way you would scan top-down. Or would you need a "do-nothing-scan" to find the end of file? (Sorry, I lack knowledge in file system implementations.)
I browse a lot of code on github, and I don't find a way to fold import statements on the website.2014-04-22 15:48 GMT-03:00 Mike Meyer <mwm@mired.org>:
In that case, there is no language that is "good enough", because liking code folding is language agnostic.Personally, I like imports at the top, as they let me know what functions I can expect to find in the module. At least, if used properly. Which shows the real problem with this suggestion: some modules will have imports at the top and some at the bottom, so if you're looking at the middle of the module and want to check on them, you've got to guess where they are.Frankly, if the goal is to get them out of the way, I'd rather see "local imports" in a where or in clause, so you can add them to the expression that needs them. But that has little enough utility that I'd rather not do it, either. Hmm, maybe only in the "import Module (thing ...)" form? Nah.On Tue, Apr 22, 2014 at 1:18 PM, Thiago Negri <evohunz@gmail.com> wrote:
If the IDE/editor is hiding it for you, it is because the language failed to be good enough to be "out of the way".The desired editor features are written in the haskell spec?I'm talking about the language in an editor/IDE agnostic way.
So, I guess this is a +1.2014-04-22 15:04 GMT-03:00 Ben Foppa <benjamin.foppa@gmail.com>:
Why not have an editor that collapses them?On Tue, Apr 22, 2014 at 1:59 PM, Thiago Negri <evohunz@gmail.com> wrote:
_______________________________________________But I guess being able to issue them at the end of the module could make sense if you want to get the reader straight to the code.I'm against imports at the middle of the file.Likewise, we can use "where" statements to define names used in a function after using them, so they don't distract the reader.So, why not issue import statements at the bottom of a module file?When reading code, I find it quite distracting to have to get past the import list to reach the actual module code, as the import list can be (and often is) quite big.
A language pragma could be used to select between top imports or bottom imports (can't use both).
What do you think?Example:"""{-# LANGUAGE LateImports #-}module Foo wherebar :: String
bar = "quux"baz :: Fizbaz = mkFizimport Fiz (Fiz, mkFiz)
"""
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe