public static void createClassTaxonomy() {
    { TaxonomyGraph graph = Stella.$CLASS_TAXONOMY_GRAPH$;

      if (graph == null) {
        graph = TaxonomyGraph.newTaxonomyGraph();
      }
      else {
        TaxonomyGraph.initializeTaxonomyGraph(graph);
      }
      { Stella_Class renamed_Class = null;
        Iterator iter000 = Module.allClasses(null, false);

        while (iter000.nextP()) {
          renamed_Class = ((Stella_Class)(iter000.value));
          renamed_Class.classTaxonomyNode = TaxonomyGraph.createTaxonomyNode(graph, renamed_Class.classTaxonomyNode, renamed_Class, renamed_Class.classDirectSupers.emptyP());
        }
      }
      { Stella_Class renamed_Class = null;
        Iterator iter001 = Module.allClasses(null, false);

        while (iter001.nextP()) {
          renamed_Class = ((Stella_Class)(iter001.value));
          { Surrogate sub = null;
            Cons iter002 = renamed_Class.classDirectSubs.theConsList;

            for (;!(iter002 == Stella.NIL); iter002 = iter002.rest) {
              sub = ((Surrogate)(iter002.value));
              if (((Stella_Class)(sub.surrogateValue)) != null) {
                TaxonomyGraph.linkTaxonomyNodes(graph, renamed_Class.classTaxonomyNode, ((Stella_Class)(sub.surrogateValue)).classTaxonomyNode);
              }
            }
          }
        }
      }
      TaxonomyGraph.finalizeTaxonomyGraph(graph);
      Stella.$CLASS_TAXONOMY_GRAPH$ = graph;
    }
  }