code: public Graph<Module> reduced() {
          Graph<Module> graph = build();
          // transitive reduction
          Graph<Module> newGraph = buildGraph(graph.edges()).reduce();
  
          if (DEBUG) {
              PrintWriter log = new PrintWriter(System.err);
              System.err.println("before transitive reduction: ");
              graph.printGraph(log);
              System.err.println("after transitive reduction: ");
              newGraph.printGraph(log);
          }
  
          return newGraph;
      }
docs: Apply transitive reduction on the resulting graph