I like that feature list a lot. It's going to be very hard to get those features ready, implemented, and stable by the end of 2017, though. Even assuming no issues with politics or the rest of the standardization process.
Concepts alone is looking like a very complex feature. And I was and under the impression that modules were even less ready. But both are very much needed.
I do know that the committee is planning on putting more experimental library features in the experimental namespace, which should provide a nice middle ground between "not ready for standardization" and "standardized and set in stone".
I believe all of the library work for concepts will be released such a namespace in C++17.
Correct me if I'm wrong, but isn't the whole infrastructure for concepts already there using TMP? The c++ std library even uses some of them already (for example, when using a set it requires an type with operator<, in other words, similar to Haskell's Ord type).
To me it feels as if c++17 is just making the compiler more aware of them, and as a result likely produce better error messages (and the code to write them to be more pleasant).
Concepts are significantly simpler to implement & check. I did a non-trivial amount of coding both with TMP-concepts, and with ConceptGCC. ConceptGCC produced better error messages earlier, was easier to symbolically debug, and produced better text, all with less & easier to read & understand code.
Concepts alone is looking like a very complex feature. And I was and under the impression that modules were even less ready. But both are very much needed.
I do know that the committee is planning on putting more experimental library features in the experimental namespace, which should provide a nice middle ground between "not ready for standardization" and "standardized and set in stone".
I believe all of the library work for concepts will be released such a namespace in C++17.