I saw this pattern somewhere:
class A extends B { }
This structure is a little unusual to extend a generic by specifying the new
Take this example:
E extends Comparable
This means that E must be a type that knows how to compare to itself, hence, the recursive type definition.
Don't know if it has any official names, but I would call it recursive generic type pattern.