Import modules properly
From HaskellWiki
Haskell has a lot of variants of importing identifiers from other modules. However not all of them are as comfortable as they seem to be at the first glance. We recommend to focus on the following two forms of import:
import qualified Very.Special.Module as VSM import Another.Important.Module (printf)
instead of
import Very.Special.Module import Another.Important.Module hiding (open, close)
Stylistic reason:
If you readprintf
VSM.open
Very.Special.Module
Another.Important.Module
Very.Special.Module
Another.Important.Module
Compatibility reason: In the second case, if new identifiers are added to the imported modules they might clash with names of other modules. Thus updating imported modules may break your code.
It may also be thatAnother.Important.Module.open
and with a module update removing that identifier, your import fails. That is, an identifier that you never needed but only annoyed you, annoys you again, when it was meant to not bother you any longer! The first variant of import does not suffer from these problems.
