On Tue, May 25, 2010 at 12:36 PM, Ionut G. Stan <ionut.g.s...@gmail.com> wrote:
>
> Oh, and a small off-topic question? Is it considered a good practice to use
> implicit imports in Haskell? I'm trying to learn from existing packages, but
> all those "import all" statements drive me crazy.
>

It's pretty common but I don't like it. Whenever I have to debug
someone else's code usually the first thing I'll do is make all the
import lists explicit so I can work out where a troublesome function
is coming from, and that's a bit of a waste of time.

In some cases though it can get a little silly. Here is an import
statement from one of my projects:

import Language.Haskell.Exts (
 Alt (Alt),
 Binds (BDecls),
 Decl (PatBind, FunBind, InfixDecl),
 Exp (App, Case, Con, Do, If, InfixApp, Lambda, LeftSection,
  Let, List, Lit, Paren, RightSection, Tuple, Var, XPcdata),
 GuardedAlt (GuardedAlt),
 GuardedAlts (UnGuardedAlt, GuardedAlts),
 Literal (Char, Frac, Int, String),
 Match (Match),
 Op (ConOp, VarOp),
 Pat (PApp, PInfixApp, PList, PLit, PParen, PTuple, PVar, PWildCard),
 Name (Ident, Symbol),
 QName (Special, UnQual),
 QOp (QConOp, QVarOp),
 Rhs (UnGuardedRhs),
 SpecialCon (Cons),
 SrcLoc (), -- (SrcLoc),
 Stmt (Generator, LetStmt, Qualifier),
 preludeFixities,
 prettyPrint
 )

...there comes a certain point where one can probably leave the
biggest import implicit, on the basis that "if it's from nowhere else,
it's probably there".
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to