Robert Greayer wrote:
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).
Yeah, as I said, it's not immediately obvious exactly what the best
solution is. Maybe we just need to get everybody to come up with more
inventive names than just "hashtable" or "binary". (E.g., We have
several parsers already, but they all have distinctive names that are
unlikely to clash. Maybe we just need to do that for everything? IDK.)
(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".
OK, that's interesting. Apparently something has changed. Last time I
looked, there was "binary", "old-binary", "new-binary", "alt-binary" and
so forth. (It seems there is now a "binary-strict", but it's pretty
obvious how that relates to the normal "binary" package.) Obviously,
having this profusion of nearly identical names is just confusing.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe