Comment #0 by bearophile_hugs — 2010-04-21T15:09:19Z
I think the Phobos module "std.typetuple" is not well named because the tuples can contain values (variables) too.
The std.typecons defines a Tuple. In D1 tuples are generally meant the ones used in std.typetuple. So I think this module too can be better named. Such tuples are implemented in D with structs, and in Pascal structs are named records.
So I propose the following five name changes:
std.typetuple ==> std.tuples
std.typetuple.TypeTuple ==> std.tuples.Tuple
std.typecons => std.records
std.typecons.Tuple ==> std.records.Record
std.typecons.tuple ==> std.records.record
Comment #1 by verylonglogin.reg — 2012-09-09T05:14:06Z
Some (a long) time ago, when I learned tuples, it was very confusing that `TypeTuple` is used as expression tuple. So I finally managed to do this boring renaming work and create
https://github.com/D-Programming-Language/phobos/pull/780
Comment #2 by bearophile_hugs — 2012-09-09T07:01:17Z
(In reply to comment #1)
> https://github.com/D-Programming-Language/phobos/pull/780
Thank you. April 2010 when I have written this suggestion was fitter for name changes. The problem with similar suggestions is that if you leave them sleep in Bugzilla for years, they risk becoming "too much late to fix" things.
Comment #3 by timon.gehr — 2012-09-09T07:14:39Z
I usually just use template Seq(T...){ alias T Seq; }. The distinction between
type and expression tuples is not important. Anything that has 'tuple' in it is
a bad name because a) tuples usually don't get auto-expanded, b) we already have
std.typecons.tuple. I object to renaming anything if both names are bad.
Ideally we'd have support for returning a Seq and there would also be a seq
helper function akin to tuple.
Comment #4 by nick — 2014-11-10T18:20:34Z
I've started work on moving std.typetuple to std.meta.list, as part of DIP 54:
http://wiki.dlang.org/DIP54
Will make a pull soon.
For the symbol name, I think the 'Template' in TemplateArgumentList is redundant because there's always a '!' after the symbol, e.g. TemplateArgumentList!int, so the reader knows it's a template. I suggest we use just ArgumentList or ArgList. It's still descriptive, and we need a short name (e.g. for easy use in unittests) otherwise everyone will just alias it differently.
I think the web docs can be handled separately with Issue 1945.