A class file is represented by the {@link proguard.classfile.ClassFile
ClassFile} interface. This interface currently has two alternative
representations:
{@link proguard.classfile.ProgramClassFile ProgramClassFile}:
a complete representation that can be read, modified, and written back.
{@link proguard.classfile.LibraryClassFile LibraryClassFile}:
an incomplete representation that can be only be read. It is however
more compact than ProgramClassFile, and sufficient for
analysing class files from library jars.