
Ian Lynagh wrote:
On Mon, Jun 18, 2007 at 09:16:10AM +0100, Simon Marlow wrote:
modules: ... modules[testing]: ... modules[internal]: ... A simpler way to solve this problem is to have two packages, with the first package (foo-internal) exporting all the modules, and the second (foo) re-exposing just the non-internal modules. We don't currently have support for re-exposing, but it has lots of uses and it shouldn't be too hard to add (to GHC, at least).
Perhaps it's not quite as nice, though: the foo-internal package shows up in your ghc-pkg list, and you need two separate Cabal packages (although good support for working with multiple packages is something we should have too).
It also means that none of your internal modules can depend on any of your normal modules.
Sure they can - the foo-internal package would contain all the modules (internal + external), but the foo package would only re-expose some of them.
(I'm not really convinced it's simpler either)
Simpler in the sense of not adding new syntax and functionality to Cabal (well ok, it does add some functionality, because Cabal needs to know which modules are being re-exposed). Cheers, Simon