
Chris Kuklewicz
And now Donald and I both need part of the Text*Regex* namespace.
So I could name the module path using some combination of relevant adjectives "Parser,Parsec,Lazy,Native,Faster,Replacement"
Text.Regex.Parsec Text.Regex.Lazy
Yes, any of those seem adaequately descriptive.
This is where java's namespace is so brilliant. I could have used reverse-dns:
Com.MightyReason.Haskell.Text.Regex
And of course you can use that namespace in Haskell too, if you wish. That scheme is even described as a possibility in the Report Addendum for hierarchical namespaces.
So how should Donald and I avoid a namespace collision?
By agreement. :-) Just because plain Text.Regex is already taken, doesn't mean it has to stay that way. Another common approach is to select a "project name" as the discriminating element of the namespace, e.g. Text.XML.HaXml.* Graphics.UI.WX.* Graphics.UI.Gtk.* So you could agree on Text.Regex.MightyReason Text.Regex.Dons and rename the existing package as Text.Regex.Gnu or whatever (I don't know if it really is from Gnu). Regards, Malcolm