That's correct: this already has a meaning in the language—
struct S<T>: Foo where T: Foo
means that S
unconditionally conforms to Foo
and T
is constrained unconditionally to conform to Foo
; it does not mean that S<T>
conforms to Foo
conditionally when T
conforms to Foo
.