design: type parameters: type parameter lists require names
Change-Id: Ib3cb641176ccd1c8dfb30558f7e0b7a228193de5
Reviewed-on: https://go-review.googlesource.com/c/proposal/+/251560
Reviewed-by: Robert Griesemer <gri@golang.org>
diff --git a/design/go2draft-type-parameters.md b/design/go2draft-type-parameters.md
index edda61f..3dcb07b 100644
--- a/design/go2draft-type-parameters.md
+++ b/design/go2draft-type-parameters.md
@@ -2,7 +2,7 @@
Ian Lance Taylor\
Robert Griesemer\
-August 27, 2020
+August 28, 2020
## Abstract
@@ -52,7 +52,7 @@
* The new predeclared name `any` is a type constraint that permits any
type.
* Interface types used as type constraints can have a list of
- predeclared types; only types which match one of those types can
+ predeclared types; only type arguments that match one of those types
satisfy the constraint.
* Generic functions may only use operations permitted by the type
constraint.
@@ -81,7 +81,7 @@
This version of the design draft has many similarities to the one
presented on July 31, 2019, but contracts have been removed and
-replaced by interface types, and the syntax has changed somewhat.
+replaced by interface types, and the syntax has changed.
There have been several proposals for adding type parameters, which
can be found through the links above.
@@ -168,6 +168,11 @@
describing the types of the ordinary non-type parameters.
It may also be used as a type within the body of the function.
+Unlike regular parameter lists, in type parameter lists names are
+required for the type parameters.
+This avoids a syntactic ambiguity, and, as it happens, there is no
+reason to ever omit the type parameter names.
+
Since `Print` has a type parameter, any call of `Print` must provide a
type argument.
Later we will see how this type argument can usually be deduced from