Why is the Type T notation needed. Just make T the generic type by default and allow using it instead of int, float etc. Is that not possible? This looks like a lot of syntactic noise. Not as bad a c++, but not far from it.
If you need more than just T, then you could do T1, T2, ..., Tn as well.
If you need more than just T, then you could do T1, T2, ..., Tn as well.