Support classes used to build the class table and extract class information from it. The class table (CT in the FeatherweightJava paper) must be built before typechecking and evaluation since the judgments describing them in the paper rely on its existence. Some errors are discovered during class table construction, most notably cyclic subtyping errors. These errors are thrown as ClassTableExceptions.