The error message sure sucks, but it's not surprising that this doesn't work.

But there is no way that a mutable char [] could be passed as a template value
parameter. And it's not a type. So what is
template(char[] X) ?
int foo(char[] c)() { return 0; }
void main(){
char [] z;
int a = foo!(z)(); // ok
}
I can't see anything in the spec to indicate what this means. From the
.mangleof, it seems to be accepting it as an alias parameter.
OK, I'll change this to a spec error.
--