JamesBritt wrote: >>>Which one gets the name XML::Parser? >> >>In this case? None of them, IMO. They would become, under Simon's >>scheme (and I mostly of agree with it), XML::Parser::REXML, >>XML::Parser::NQXML, XML::Parser::libxml. What I'd like to see to >>really make this work and be powerful is to slightly change how >>"include"/"append_features" works, particularly from the perspective >>of including into the top-level. What would be nice is the ability >>to do: >> >> include XML::Parser::REXML as XML::Parser >> >>Allowing me, in my code, to alias REXML as XML::Parser. > > > I like that. (It presumes, though, that the APIs are the same.) Aliasing classes is as easy as constant definition, so why not have libraries organized like XML::Parsers::REXML XML::Parsers::NQXML XML::Parsers::libxml In your code you can just assign module XML Parser = Parsers::REXML end To the extent that the libraries are compatible, you can then write generic code against the XML::Parser alias.