This program: import std.range; import std.stdio; void main(string[] args) { alias empty e; writeln(args.e); } fails to compile, giving this message: test.d(8): Error: undefined identifier module test.e It shouldn't matter whether an alias is used. The function should act the same way that it does when not aliased. And in this case, that fails, since you can't call it as if the function were a member function of the array, which you can normally do.
The problem is not the alias, but the fact the alias is not at global scope. *** This issue has been marked as a duplicate of issue 4525 ***