D-Programming-Language/phobos — pull request #2687 by ntrel (2014-11-11 17:17:45+00:00)
Title: [WIP] Move std.typetuple to std.meta.list

https://issues.dlang.org/show_bug.cgi?id=4113

Part of [DIP 54](http://wiki.dlang.org/DIP54).

My plan of attack is to create `std.meta.list` as described in the DIP, then work on updating dlang.org and remaining Phobos modules not to use *tuple* for template argument lists. I don't intend to work on `std.meta.pack` as that seems additional functionality best done by someone else.

BTW I think the DIP also needs to mention what happens to `.tupleof` - copying @Dicebot.

For the documented new symbol name for *TypeTuple*, *TemplateArgumentList*, I think the 'Template' word 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. But I will change this if necessary.

I'd like some feedback for work so far:
* Rename `std.typetuple` to `std.meta.list`.
* Schedule `std.typetuple` for deprecation.
* Rename TypeTuple -> ArgList.
* Make `std.typetuple` publicly import `std.meta.list` and `alias TypeTuple = ArgList`.
* Update `std.meta.list` docs to mention *TemplateArgumentList* or just list instead of tuple.
* Update makefiles.

TODO:
* Rename remaining uses of `std.typetuple`, `TypeTuple` in Phobos.