
On 10/30/06, Frederik Eaton
What about packages with multiple module trees like, say, Cabal?
That's a good question, and I think the right answer is not to do anything special to support them. I assume that what you're referring to with Cabal is that there is no common prefix for all of the module names, but rather a small set of common prefixes (Distribution.*, Language.Haskell.Extension). Under my proposal, if we want to get rid of the 'Distribution' module prefix within the Cabal source code, then we'll have to either rename the Language.Haskell.Extension module, or move it to another package.
Erg. That sounds icky :-(. Maybe we ought to have a flag that takes package name, default mountpoint, and replacement mountpoint? And the cabal would look like this: The package would export: X11.Types X11.Xlib X11.Xlib.Atom X11.Xlib.Event X11.Xlib.Display ... and have: Default-Bases: X11=Graphics.X11 Other packages would import it like this if they wanted the Types module at Graphics.Unix.X11.Types: Build-Depends: X11(X11=Graphics.Unix.X11) Who knows what the GHC flags ought to look like...