A build graph contains these edges: parse -> typecheck -> bundle -> parse There is no valid first task. A topological sort should not return a partial list and quietly stop; it should explain why the graph cannot be ordered. This project teaches two connected ideas: Kahn's algorithm produces an order for a directed acyclic graph (DAG). A separate depth-first search can turn “some cycle exists” into a concrete cycle a learner can inspect. Prerequisites: P...