well my point from using the syntax construct[T1, T2]() is to separate generic parameters from normal ones.
For example, if I wrap the C++ vector, I want to be able to write:
var v = construcVector[float](10)
which is more clear than constructVector(float, 10) and more similar to the C++
version vector<float>(10).
