Per the spec, the underlying type of a type parameter is its constraint interface. Similarly to how we talk about an X type (say, an array type) if the underlying type of a named type is X, we also talk about interface types for type parameters. This is confusing.
Reminder issue to try clearer prose where needed.
See also @findleyr 's comment here.
Comment From: griesemer
Not going to touch this for 1.22.
Comment From: griesemer
Ditto for 1.23.