Disclaimer: I don't have a whole ton of experience with Java Generics, but my colleagues and I just spent a solid hour trying to decipher an interface that was structured like this:

interface HasAttributes<A extends HasAttributes<A, B>, 
                        B extends HasAttributesType<B>> extends Identification<B> {

What exactly does it mean when an interface generic takes a type parameter that is itself? What does this do?

Edit
Report