[Haskell-cafe] Imports at bottom, why not?

Mike Meyer mwm at mired.org
Tue Apr 22 18:48:58 UTC 2014


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 at gmail.com> wrote:

> The desired editor features are written in the haskell spec?
> I'm talking about the language in an editor/IDE agnostic way.
> 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".
> So, I guess this is a +1.
>
>
>
>
> 2014-04-22 15:04 GMT-03:00 Ben Foppa <benjamin.foppa at gmail.com>:
>
>> Why not have an editor that collapses them?
>>
>>
>> On Tue, Apr 22, 2014 at 1:59 PM, Thiago Negri <evohunz at gmail.com> wrote:
>>
>>> 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.
>>>
>>> So, why not issue import statements at the bottom of a module file?
>>>
>>> Likewise, we can use "where" statements to define names used in a
>>> function after using them, so they don't distract the reader.
>>>
>>> I'm against imports at the middle of the file.
>>> 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.
>>>
>>> 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 where
>>>
>>> bar :: String
>>> bar = "quux"
>>>
>>> baz :: Fiz
>>> baz = mkFiz
>>>
>>> import Fiz (Fiz, mkFiz)
>>> """
>>>
>>>
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe at haskell.org
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>>>
>>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20140422/dc7ce5aa/attachment.html>


More information about the Haskell-Cafe mailing list