design: 47916-parameterized-go-types.md: fix the signature of Constraint

Constraint returns a Type, not an *Interface.

Change-Id: I1707773f3924e5d3503f026f6508bfb132d66c99
Reviewed-on: https://go-review.googlesource.com/c/proposal/+/344672
Reviewed-by: Robert Findley <rfindley@google.com>
diff --git a/design/47916-parameterized-go-types.md b/design/47916-parameterized-go-types.md
index 5e23ccc..2c195af 100644
--- a/design/47916-parameterized-go-types.md
+++ b/design/47916-parameterized-go-types.md
@@ -35,7 +35,7 @@
 ```go
 func NewTypeParam(obj *TypeName, constraint Type) *TypeParam
 
-func (*TypeParam) Constraint() *Interface
+func (*TypeParam) Constraint() Type
 func (*TypeParam) SetConstraint(Type)
 func (*TypeParam) Obj() *TypeName
 
@@ -44,7 +44,7 @@
 func (*TypeParam) String() string
 ```
 
-Within type and function declarations, type parameters names denote type parameter types, represented by the new `TypeParam` type. It is a `Type` with two additional methods: `Constraint`, which returns its type constraint, and `SetConstraint` which may be used to set its type constraint. The `SetConstraint` method is necessary to break cycles in situations where the constraint type references the type parameter itself.
+Within type and function declarations, type parameters names denote type parameter types, represented by the new `TypeParam` type. It is a `Type` with two additional methods: `Constraint`, which returns its type constraint (which may be a `*Named` or `*Interface`), and `SetConstraint` which may be used to set its type constraint. The `SetConstraint` method is necessary to break cycles in situations where the constraint type references the type parameter itself.
 
 For a `*TypeParam`, `Underlying` is the identity method, and `String` returns its name.