
I wouldn't be opposed to this suggestion, if people think that it's not too confusing. It would certainly make many things easier. My original proposal was more conservative in part because I'd thought that people might be reluctant to open up new sinks for design complexity in Haskell programs - but of course, we would hope the effect of Samuel's additional features will be to simplify design in the long run. Frederik On Mon, Oct 30, 2006 at 06:37:16AM -0500, Samuel Bronson wrote:
On 10/30/06, Frederik Eaton
wrote: 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...