The big picture that the DIP suggested was that when stuff like
this fails to compile:
struct Foo(T) {}
alias Bar(T) = Foo!T;
void f(T)(Bar!T x) {}
void main() {
auto foo = Bar!int();
f(foo);
}
Then most programmers would just conclude that the compiler is
broken beyond repair and move on to another language. I certainly
did so with g++ in the 90s. Such issues are deal breakers for any
sane professional programmer, only hobbyists would accept that.
Most people won't ask for help in the forums if the compiler
fails on things that look trivial. They will conclude that the
type unification in the compiler is unstable.