--- On Sat, 8/16/08, Andrew Coppin <[EMAIL PROTECTED]> wrote:
> > Although it is possible to hide packages by GHC options, we should not
> > do this, because several libraries might use different Hash tables and 
> > it would not be possible to write a program which uses many of these 
> > libraries. It's better to add a distinguishing part to the module 
> > name, like Data.HashTable.Coppin or so.
> 
> This is more the sort of thing I had in mind, yes.

This seems to be a common approach, but it runs counter to the objective of 
separating 'provenance' from module naming.  'Coppin' is (part of, sans 
version) the provenance of the hashtable implementation, so I'm not sure how 
this sort of scheme is better than just shoving the unique prefix at the front 
of the module, e.g.

Coppin.Data.Hashtable

Though embedding the provenance down in the hierarchy is a common pattern,  I 
think it is can be pretty messy.  For example, the Parsec package exposes many 
modules, including "Text.Parsec.String" and 
"Text.ParserCombinators.Parsec.Token" -- the provenance appears at different 
levels in the hierarchy.  If you're going to shove the package name in there, 
it seems simpler to me to just shove it at the front: 
Parsec.Text.ParserCombinators.Token.  The package mounting scheme might solve 
this (though it seems to me that it requires that source for packages be kept 
around.  I may be wrong).

> (As I already pointed out, there's at least 3 packages called "bianry", > 
> which is just confusing.)

On hackage? I only see one with that the exact name "binary".


      
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to