class pkg1.O<T> name: O / O / pkg1.O type parameters: T superclass: java.lang.Object constructors: O() class pkg1.O<T>.I<S> name: I / O.I / pkg1.O.I type parameters: S nested in: pkg1.O<T> superclass: java.lang.Object constructors: O.I() methods: void m1(O<String>.I<Number>) class pkg1.X<T> name: X / X / pkg1.X type parameters: T superclass: java.lang.Object constructors: X() class pkg1.X<T>.Y name: Y / X.Y / pkg1.X.Y nested in: pkg1.X<T> superclass: java.lang.Object constructors: X.Y() class pkg1.X<T>.Y.Z<S> name: Z / X.Y.Z / pkg1.X.Y.Z type parameters: S nested in: pkg1.X<T>.Y superclass: java.lang.Object constructors: X.Y.Z() methods: void m1(X<String>.Y.Z<Number>)