public abstract final int
public abstract final [I
public java.lang.Object
public abstract final [Ljava.lang.Object;
public ClassAttrs$PublicInnerClass
public abstract final [LClassAttrs$PublicInnerClass;
protected ClassAttrs$ProtectedInnerClass
protected abstract final [LClassAttrs$ProtectedInnerClass;
private ClassAttrs$PrivateInnerClass
private abstract final [LClassAttrs$PrivateInnerClass;
 ClassAttrs$PackagePrivateInnerClass
abstract final [LClassAttrs$PackagePrivateInnerClass;
public abstract interface java.io.Serializable
public abstract final [Ljava.io.Serializable;
public abstract static interface ClassAttrs$PublicInnerInterface
public abstract final [LClassAttrs$PublicInnerInterface;
protected abstract static interface ClassAttrs$ProtectedInnerInterface
protected abstract final [LClassAttrs$ProtectedInnerInterface;
private abstract static interface ClassAttrs$PrivateInnerInterface
private abstract final [LClassAttrs$PrivateInnerInterface;
abstract static interface ClassAttrs$PackagePrivateInnerInterface
abstract final [LClassAttrs$PackagePrivateInnerInterface;
***** class ClassAttrs:
  name: ClassAttrs
  canonical: ClassAttrs
  simple: ClassAttrs
  genericSignature: null
  super: class java.lang.Object
  genericSuperclass: class java.lang.Object
  declaring: null
  enclosing: null
  enclosingCon: null
  enclosingMeth: null
  modifiers: 1
  package: null
  declaredClasses: [10] class ClassAttrs$MemberClass, class ClassAttrs$PackagePrivateInnerClass, class ClassAttrs$PrivateInnerClass, class ClassAttrs$ProtectedInnerClass, class ClassAttrs$PublicInnerClass, class ClassAttrs$PublicMemberClass, interface ClassAttrs$PackagePrivateInnerInterface, interface ClassAttrs$PrivateInnerInterface, interface ClassAttrs$ProtectedInnerInterface, interface ClassAttrs$PublicInnerInterface
  member classes: [3] class ClassAttrs$PublicInnerClass, class ClassAttrs$PublicMemberClass, interface ClassAttrs$PublicInnerInterface
  isAnnotation: false
  isAnonymous: false
  isArray: false
  isEnum: false
  isInterface: false
  isLocalClass: false
  isMemberClass: false
  isPrimitive: false
  isSynthetic: false
  genericInterfaces: [0]
  typeParameters: [0]
***** class OtherClass:
  name: OtherClass
  canonical: OtherClass
  simple: OtherClass
  genericSignature: null
  super: class java.lang.Object
  genericSuperclass: class java.lang.Object
  declaring: null
  enclosing: null
  enclosingCon: null
  enclosingMeth: null
  modifiers: 0
  package: null
  declaredClasses: [0]
  member classes: [0]
  isAnnotation: false
  isAnonymous: false
  isArray: false
  isEnum: false
  isInterface: false
  isLocalClass: false
  isMemberClass: false
  isPrimitive: false
  isSynthetic: false
  genericInterfaces: [0]
  typeParameters: [0]
***** class otherpackage.OtherPackageClass:
  name: otherpackage.OtherPackageClass
  canonical: otherpackage.OtherPackageClass
  simple: OtherPackageClass
  genericSignature: null
  super: class java.lang.Object
  genericSuperclass: class java.lang.Object
  declaring: null
  enclosing: null
  enclosingCon: null
  enclosingMeth: null
  modifiers: 1
  package: package otherpackage
  declaredClasses: [0]
  member classes: [0]
  isAnnotation: false
  isAnonymous: false
  isArray: false
  isEnum: false
  isInterface: false
  isLocalClass: false
  isMemberClass: false
  isPrimitive: false
  isSynthetic: false
  genericInterfaces: [0]
  typeParameters: [0]
***** class ClassAttrs$1InnerNamed:
  name: ClassAttrs$1InnerNamed
  canonical: null
  simple: InnerNamed
  genericSignature: null
  super: class java.lang.Object
  genericSuperclass: class java.lang.Object
  declaring: null
  enclosing: class ClassAttrs
  enclosingCon: null
  enclosingMeth: public static void ClassAttrs.main()
  modifiers: 0
  package: null
  declaredClasses: [0]
  member classes: [0]
  isAnnotation: false
  isAnonymous: false
  isArray: false
  isEnum: false
  isInterface: false
  isLocalClass: true
  isMemberClass: false
  isPrimitive: false
  isSynthetic: false
  genericInterfaces: [0]
  typeParameters: [0]
***** class ClassAttrs$1ConsInnerNamed:
  name: ClassAttrs$1ConsInnerNamed
  canonical: null
  simple: ConsInnerNamed
  genericSignature: null
  super: class java.lang.Object
  genericSuperclass: class java.lang.Object
  declaring: null
  enclosing: class ClassAttrs
  enclosingCon: ClassAttrs()
  enclosingMeth: null
  modifiers: 0
  package: null
  declaredClasses: [0]
  member classes: [0]
  isAnnotation: false
  isAnonymous: false
  isArray: false
  isEnum: false
  isInterface: false
  isLocalClass: true
  isMemberClass: false
  isPrimitive: false
  isSynthetic: false
  genericInterfaces: [0]
  typeParameters: [0]
***** class ClassAttrs$1:
  name: ClassAttrs$1
  canonical: null
  simple: 
  genericSignature: null
  super: class OtherClass
  genericSuperclass: class OtherClass
  declaring: null
  enclosing: class ClassAttrs
  enclosingCon: null
  enclosingMeth: public static void ClassAttrs.main()
  modifiers: 8
  package: null
  declaredClasses: [0]
  member classes: [0]
  isAnnotation: false
  isAnonymous: true
  isArray: false
  isEnum: false
  isInterface: false
  isLocalClass: false
  isMemberClass: false
  isPrimitive: false
  isSynthetic: false
  genericInterfaces: [0]
  typeParameters: [0]
***** class ClassAttrs$MemberClass:
  name: ClassAttrs$MemberClass
  canonical: ClassAttrs.MemberClass
  simple: MemberClass
  genericSignature: <XYZ:Ljava/lang/Object;>Ljava/lang/Object;
  super: class java.lang.Object
  genericSuperclass: class java.lang.Object
  declaring: class ClassAttrs
  enclosing: class ClassAttrs
  enclosingCon: null
  enclosingMeth: null
  modifiers: 8
  package: null
  declaredClasses: [0]
  member classes: [0]
  isAnnotation: false
  isAnonymous: false
  isArray: false
  isEnum: false
  isInterface: false
  isLocalClass: false
  isMemberClass: true
  isPrimitive: false
  isSynthetic: false
  genericInterfaces: [0]
  typeParameters: [1] XYZ
***** class FancyClass:
  name: FancyClass
  canonical: FancyClass
  simple: FancyClass
  genericSignature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/util/HashMap<TK;TV;>;Ljava/util/Map<TK;TV;>;
  super: class java.util.HashMap
  genericSuperclass: java.util.HashMap<K, V>
  declaring: null
  enclosing: null
  enclosingCon: null
  enclosingMeth: null
  modifiers: 1
  package: null
  declaredClasses: [0]
  member classes: [2] class java.util.AbstractMap$SimpleEntry, class java.util.AbstractMap$SimpleImmutableEntry
  isAnnotation: false
  isAnonymous: false
  isArray: false
  isEnum: false
  isInterface: false
  isLocalClass: false
  isMemberClass: false
  isPrimitive: false
  isSynthetic: false
  genericInterfaces: [1] java.util.Map<K, V>
  typeParameters: [2] K, V
constructor signature: (LClassAttrs$MemberClass<TXYZ;>;)V
method signature: ()Ljava/lang/Class<TXYZ;>;
field signature: LClassAttrs$MemberClass<TXYZ;>;
