Discussion of TypeTuple naming

Jonathan M Davis jmdavisProg at gmx.com
Mon May 27 23:34:53 PDT 2013


On Tuesday, May 28, 2013 04:52:50 Diggory wrote:
> Are you really arguing that the existing system is easier to
> understand?

I'm arguing that the only problem in the current design is the name. TypeTuple 
is a template for creating built-in tuples, and the built-in tuples deal with 
both expressions and types, so that's what TypeTuple should do. The fact that 
it's called TypeTuple is a problem, because it doesn't just deal with types, 
and the fact that the documentation indicates that it just deals with types is 
a problem, because it doesn't. But I don't think that there's any problem with 
how the template itself works.

If I could go back, I'd rename TypeTuple to something like StaticTuple, or 
ParamTuple, or ArgTuple, or ParamSeq, or ArgSeq, or some other name which made 
more sense for what it does. But given that we can't go back in time, we have 
to contend with the fact that both the module and template have the name 
TypeTuple (albeit with different capitalization) and that changing them would 
break a lot of code. And Walter in particular is very much against making 
breaking changes which don't have a large ROI, and he and Andrei have made it 
clear that they don't want to be changing symbol names in the library at this 
point just because the names aren't as good as they should be. The ROI is too 
small. So, at this point, the fact that a name is poor is generally _not_ 
enough to get it changed. TypeTuple is bad enough that they _might_ agree to 
it, but I doubt it. So, given the current situation, we clearly need to 
improve the documentation, but that's probably all that we can do.

Regardless, I have _zero_ problem with the design of TypeTuple, just the name.

- Jonathan M Davis


More information about the Digitalmars-d mailing list