On Fri, 25 Jan 2019 19:14:51 -0500, Steven Schveighoffer wrote: > Interestingly, It's not possible to do the second form, so it's a bit > curious why we don't just drop the requirements for nested > parentheses...
The error messages there are really hideous, too: template Just(alias s) { alias Just = s; } alias f = (Just!Just)!int; scratch.d(16): Error: basic type expected, not ( scratch.d(16): Error: function declaration without return type. (Note that constructors are always named this) scratch.d(16): Error: semicolon expected to close alias declaration scratch.d(16): Error: found ; when expecting . following int scratch.d(17): Error: found } when expecting identifier following int. scratch.d(18): Error: found End of File when expecting ; following statement scratch.d(18): Error: found End of File when expecting } following compound statement So I guess this is just to make people less confused about order of operations, since it would be unexpectedly right-associative in a language where most things are left-associative?