X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Futils%2FDigraph.lhs;fp=compiler%2Futils%2FDigraph.lhs;h=c5c9b578a21de73b2e1a16fa9ee7a5e61b756ba3;hp=cde008ad9a2307490c26ac88c3f47b1c34b8af18;hb=0ee1d0fd7b5cae2857fe6632cbee5441c011bb99;hpb=9ec880fcb29ff038bcc72d78bbe2fd6933566047 diff --git a/compiler/utils/Digraph.lhs b/compiler/utils/Digraph.lhs index cde008a..c5c9b57 100644 --- a/compiler/utils/Digraph.lhs +++ b/compiler/utils/Digraph.lhs @@ -323,17 +323,17 @@ preArr bnds = tabulate bnds . preorderF ------------------------------------------------------------ \begin{code} ---postorder :: Tree a -> [a] -postorder (Node a ts) = postorderF ts ++ [a] +postorder :: Tree a -> [a] -> [a] +postorder (Node a ts) = postorderF ts . (a :) -postorderF :: Forest a -> [a] -postorderF ts = concat (map postorder ts) +postorderF :: Forest a -> [a] -> [a] +postorderF ts = foldr (.) id $ map postorder ts -postOrd :: Graph -> [Vertex] -postOrd = postorderF . dff +postOrd :: Graph -> [Vertex] +postOrd g = postorderF (dff g) [] -topSort :: Graph -> [Vertex] -topSort = reverse . postOrd +topSort :: Graph -> [Vertex] +topSort = reverse . postOrd \end{code}