https://issues.dlang.org/show_bug.cgi?id=21891
--- Comment #3 from Andrei Alexandrescu <and...@erdani.com> --- (In reply to Paul Backus from comment #2) > (In reply to Andrei Alexandrescu from comment #0) > > So in fact 1 is bindable to an alias but somehow not in all contexts! > > Specifically: an expression can bind to a template alias parameter, but is > not allowed on the right-hand side of an alias declaration. > > The reason `alias Y = X;` works but `alias Y = X[0];` doesn't is that `X` by > itself on the right-hand side is parsed as a symbol, not an expression. The > variadic parameter is a distraction. Very interesting, thank you! --