[Haskell-cafe] What's in a name?
Andrew Coppin
andrewcoppin at btinternet.com
Sat Aug 16 13:22:08 EDT 2008
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.
More information about the Haskell-Cafe
mailing list