Unrestricting explicit declarations of function generics

Yes, I think the type is going to be declared anyway, so I might as well have it in the right place instead of using var x: someType = foo() or var x = foo() as someType
This seems strange, like the return value of some statement determines the result of a function or a type-forcing conversion.
I think var x = foo<someType>() is the most intuitive and most elegant.