On Jun 6, 2008, at 8:12 AM, Wolfgang Jeltsch wrote:

Am Donnerstag, 5. Juni 2008 17:19 schrieb Johan Tibell:
[…]

2. It's the default. You have to add "qualified" to all your imports
to make them qualified. In most language imports are qualified by
default. I think the latter would have been a better choice but we
have to live with the current design so bite the bullet and add those
qualified keywords to your imports.

If you leave out “qualified”, you still get the qualified names imported. And if you use conflicting identifiers always qualified then there’s no problem.
For example, you can use

   import Data.Set as Set
   import Data.List as List

and then just say Set.null or List.null.

There's one caveat: Always choose descriptive names, even if you are assuming that you will usually use a qualified import. The following are wonderful names, even though they conflict with the prelude:
  null
  filter
  map
  lookup

The following are terrible names:
  T
  C

What's a T? What's a C? There's no excuse to give something a lousy name just because the enclosing module is descriptively named. I reject the naming conventions used by ML modules when writing Haskell code: Haskell modules are not ML modules.

-Jan-Willem Maessen

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to