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.