I've learning more about Java Generics this week. I learned of bounded types when specifying a generic. The description is something along the lines of:

```
class <T extends A & B & C> ...

```

Meaning T must of a type that extends A and implements B and C. Therefore, in the generic definition, instances of type T may access any methods of A, B or C.

T may extend only one class, and it must be the first in the list. All extends may be interfaces as well.

This notation can be confusing. It's not obvious that A is a class. If you make mistake and B were the class, the compiler won't let you continue, but it doesn't give an compile time error message that's particularly obvious. It doesn't state, "Class B must be the first in the list."

I was thinking that Java already has a way of defining classes and interfaces. Why not leverage that existing syntax for Generics as well. So instead of:

```
class <T extends A & B & C>

```

why not:

```
class <T extends A implements B, C>

```