This enhances generics with the "unboxing" behavior where A<T> matches T. It makes this unboxing transitive over generics.