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