reachable: recovered reverse post-order (lost in 73ad4884441f), which is expected for all_preds/all_succs and required for topological_order;
--- a/src/Pure/General/graph.ML Fri Sep 25 13:48:27 2009 +0100
+++ b/src/Pure/General/graph.ML Sun Sep 27 19:39:40 2009 +0200
@@ -140,8 +140,8 @@
fun imm_succs G = #2 o #2 o get_entry G;
(*transitive*)
-fun all_preds G = flat o fst o reachable (imm_preds G);
-fun all_succs G = flat o fst o reachable (imm_succs G);
+fun all_preds G = flat o rev o fst o reachable (imm_preds G);
+fun all_succs G = flat o rev o fst o reachable (imm_succs G);
(*strongly connected components; see: David King and John Launchbury,
"Structuring Depth First Search Algorithms in Haskell"*)