What are the rules for when you can alias a template and when you can't? For example, why doesn't this compile? import std.signals; alias Signal!(int) x; void main() {}