OK, I solved it that way :
char[] toString(T)(T x){
static if(is(T B == B[])) {
char[] s;
s ~= '[';
if(x.length > 0){
s ~= toString(x[0]);
foreach(y;x[1..$]){
s ~= ',';
s ~= toString(y);
}
}
s ~= ']';
return s;
} else {
return std.string.toString(x);
}
}