Shouldn't T[char[]] be disallowed, and have to be written as T[immutable(char)[]] instead of a silent rewrite?
alias long[char[]] AA;
// key automatically changed to const(char)[]
static assert(is(AA == long[const(char)[]]));
AA aa;
aa["a"] = 10;
// error - have to use immutable keys
aa["b".dup] = 11;
