The proposal extends the Go 2 contracts (generics) draft design in four ways:
The gist of it is that the use of contracts should be explicit. For this contracts should act as their own adapters. Fundamental and custom types can be coerced to behave in a common way.