It is very useful to create a simple alias from a complex type for export from a type library, then it breaks when people use that type library to write templated functions.People do this all the time in C++.
Example:
// library code
struct _config(T){}
struct _matrix(T,C){}
alias matrix(T) = _matrix!(T,_config!T);
// application code
void f(T)(matrix!T m){}
void main()
{
f(matrix!float());
f(matrix!double());
}
