design/43651-type-parameters: absolute difference does not work in 1.18

Change-Id: Ic42e1113c96b087badcb3dcbe6ebd0a6a3460a7d
Trust: Ian Lance Taylor <>
Reviewed-by: Robert Griesemer <>
diff --git a/design/ b/design/
index 454059e..7ee6dfe 100644
--- a/design/
+++ b/design/
@@ -3875,6 +3875,9 @@
 factored into code that uses methods, where the exact definition of
 the methods can vary based on the kind of type being used.
+Note: the code used in this example will not work in Go 1.18.
+We hope to resolve this and make it work in future releases.
 // NumericAbs matches numeric types with an Abs method.
 type NumericAbs[T any] interface {
@@ -3887,7 +3890,7 @@
 // AbsDifference computes the absolute value of the difference of
 // a and b, where the absolute value is determined by the Abs method.
-func AbsDifference[T NumericAbs](a, b T) T {
+func AbsDifference[T NumericAbs[T]](a, b T) T {
 	d := a - b
 	return d.Abs()