I'm actually not a huge fan of implicit name-generation tricks, but I'm also not entirely opposed to them.
The trick here I think is consistency - is name-generated type dispatch the standard across the entirety of the codebase? If it is, go wild. If it's not then I'd be much more wary of it.
Consistency and building correct expectations for future maintainers is pretty important. Doing a smart trick in one place but failing to do it in other places where it makes sense IMO tends to create a bigger mess than doing it the dumb-but-safe way everywhere.
I so agree with you. There are few programming mistakes that consistency in use does ameliorate. On the other hand, no matter how "good" the code, if it's inconsistent, it's bad.
Agree. Names should not matter. You are going to have to document name construction. If your library users use IDEs you are going to have to get them to understand names.
So you're probably not a big fan of Rails, then?