exposed packages and cabal depends
ijones at syntaxpolice.org
Fri Apr 8 18:40:45 EDT 2005
(removing some CCs)
"S. Alexander Jacobson" <alex at alexjacobson.com> writes:
> The -hide-all-packages option would make sense only if there were real
> flexibility in selecting which packages to use in implementing the
> modules imported into your program.
I disagree. The basic system will be:
- the users add build-depends to their .cabal files
- their software, is built (by cabal) with the -hide-all-packages, and
cabal adds -package flag for each explicit dependency, so:
- if there is any dependency on a package not mentioned in the .cabal
file, the program will fail to build with cabal.
- (Previously, the user could fail to mention dependencies for
"exposed" packages and not get an error.)
So the -hide-all-packages makes a great deal of sense and provides
value. I don't think that your characterization of it is
constructive. It works with the packaging system that exists today in
GHC. Most of the infrastructure is outside of the compiler. There
are pros and cons to that, but that's the reality of every compiler I
 That is, currently.
 The "packaging system" bits that include cabal, hackage, and
ghc-pkg are all external to the compiler. The compiler only does the
relatively small job of knowing how to find the modules when given a
-package flag (or when a package is exposed).
More information about the Libraries