This works too:
void abc(T, U=void)(T parm1) {
writeln("simpleparm: ", parm1);
}
void abc(T:U[],U)(T parm1) {
writeln("array : ", parm1);
}
void main(string[] args) {
abc(1);
abc("str");
int[] arr = [1, 2];
abc(arr);
}