Types are not first-class in Go, thus T.someMethod() is somewhat an unusual syntax.
The
proposal to use 'T{}' to mean zero value of T breaks Go compatibility promise:
if T is a map type or a slice type, 'T{}' already has a meaning:
create a non-nil, zero-elements map (or slice).
Instead the zero value of such types is nil.
Using '_' could be an elegant solution in places where type inference can deduce the correct type.
Two more ideas that I did not see yet are:
1. use 'T()' to mean zero value of T - currently does not compile, thus Go compatibility promise is preserved.
2. define a new compiler builtin 'zero(T)'