This is a short response to the recently announced Go 2 generics draft proposals Update: This proposal is incomplete. It cannot replace two common use cases. The first is ensuring that several formal parameters are of the same type: contract comparable(t T) { t > t } func max(type T comparable)(a, b T) T Here a, and b must be the same parameterised type — my suggestion would only assert that they