Does a type like `[[i32]]` need to be forbidden?

But there are also:

  1. Sometimes when something is not a type because of extra superfluous bounds it maybe easily turned into a type (think, again, about HashMap<f32, f32>: it's a type but why?) and then it makes sense to talk about whether it's good idea or not to include such type into the language.

That's basically, what I wrote in the very first message of the whole discussion:

That's the only thing that I have said: yes, [[i32]] is not a type, but it's not a type because of matters of troubles that such a type would add to Rust implementation, not because there are some fundamental reason for it not to exist.