3 --================================================================================
7 Succeeded{-r4G,x-}{i} =
8 _/\_ a{-r8v-} b{-r8w-} -> \ tpl_B1 ->
10 {_@_ a{-r8v-} _@_ b{-r8w-} tpl_B1}
12 _/\_ a{-r8v-} b{-r8w-} -> \ tpl_B1 ->
14 {_@_ a{-r8v-} _@_ b{-r8w-} tpl_B1}
16 MkDigraph{-r8L,x-}{i} =
17 _/\_ vertex{-r8G-} -> \ tpl_B1 ->
19 {_@_ vertex{-r8G-} tpl_B1}
23 [a{-a1lz-}, b{-a1lA-}]
25 [([a{-a1lz-}, b{-a1lA-}], $d1{-r1lE,x-}, d.Eval_a1kX)]
32 [([vertex{-a1lB-}], $d2{-r1lS,x-}, d.Eval_a1l3)]
37 PrelBase.$d24{-rj0,p-}
45 PrelBase.return{-816,p-}
49 PrelBase.$d23{-riZ,p-}
51 PrelBase.zero{-810,p-}
55 PrelBase.$d25{-rj1,p-}
61 PrelBase.$d22{-riY,p-}
85 isRecursiveCycle{-r6x,x-},
86 isRecursiveCycle_a1b5)]
93 [vertex{-a1ba-}, vertex{-a1ba-}]
94 [d.Eq_a1bp, d.Eq_a1bq]
96 PrelList.elem{-rF6,p-}
97 (vertex{-a1ba-}, vertex{-a1ba-})
100 [vertex_r8n] edges_r8p
101 = (vertex_r8n, vertex_r8n) elem_a1lT edges_r8p
102 isRecursiveCycle_a1b5
104 = PrelBase.True{-5E,p-}{i}
108 [vertex{-a1bC-}, name{-a1bD-}, code{-a1bE-}]
109 [d.Eq_a1cs, d.Ord_a1ct]
110 [([name{-a1bD-}, vertex{-a1bC-}, code{-a1bE-}],
111 lookupVertex{-r6w,x-},
120 flat_info_r8e vertex_r8g
121 = PrelList.head{-rFm,p-}
122 code{-a1bE-} code_list_r8i
125 AbsBinds [] [] [([], code_list_r8i, code_list_a1bI)]
128 (vertex'_r8k, _, _, code_r8l) <- flat_info_r8e, vertex_r8g
135 [vertex{-a1cO-}, name{-a1cR-}, code{-a1cS-}]
136 [d.Eq_a1ei, d.Ord_a1ej]
137 [([name{-a1cR-}, code{-a1cS-}, vertex{-a1cO-}],
143 PrelBase.$d23{-riZ,p-}
145 vertices_r7U flat_info_r7W
146 = [ (source_vertex_r87, target_vertex_r8c) |
147 (source_vertex_r87, _, used_names_r88, _) <- flat_info_r7W, target_name_r8a <- Set.setToList{-rhd,p-}
148 name{-a1cR-} used_names_r88, target_vertex_r8c <- vertices_defining_a1lV target_name_r8a
154 [t{-a1d5-}, t{-a1da-}, t{-a1dd-}, a{-a1dg-}, a{-a1di-}]
155 [d.Ord_a1du, d.MonadZero_a1dA]
156 [([t{-a1d5-}, t{-a1da-}, t{-a1dd-}, a{-a1dg-}, a{-a1di-}],
157 vertices_defining_r7Y,
158 vertices_defining_a1cU)]
160 PrelBase.scsel_MonadZeroPrelBaseMonad{-a1m0,p-}
164 Set.elementOf{-rh5,p-}
168 PrelBase.>>={-811,p-}
174 PrelBase.return{-816,p-}
178 PrelBase.zero{-810,p-}
181 vertices_defining_a1cU
182 name_r80 flat_info_r82
184 (vertex_r84, names_defined_r85, _, _) <- flat_info_r82, name_r80
185 elementOf_a1lZ names_defined_r85
188 vertices_defining_a1lV =
189 vertices_defining_r7Y
190 [vertex{-a1cO-}, Set.Set{-rh2,p-} name{-a1cR-}, code{-a1cS-}, PrelBase.[]{-3j,p-}, name{-a1cR-}]
191 [d.Ord_a1ek, d.MonadZero_a1el]
195 [vertex{-a1eC-}, name{-a1eD-}, code{-a1eE-}]
197 [([name{-a1eD-}, code{-a1eE-}, vertex{-a1eC-}],
203 (vertex_r7S, _, _, _) <- info_r7Q ]
209 [([vertex{-a1ff-}], isCyclic{-r6s,x-}, isCyclic_a1fc)]
216 [vertex{-a1ff-}, vertex{-a1ff-}]
217 [d.Eq_a1fw, d.Eq_a1fx]
219 PrelList.elem{-rF6,p-}
220 (vertex{-a1ff-}, vertex{-a1ff-})
224 = (v_r7y, v_r7y) elem_a1m1 edges_r7w
227 = PrelBase.True{-5E,p-}{i}
233 [([t{-a1gi-}], dfs{-r6y,x-}, dfs_a1fz)]
235 PrelList.elem{-rF6,p-}
239 r_r7f (vs_r7h, ns_r7i) PrelBase.[]{-5i,p-}{i}
242 r_r7l (vs_r7n, ns_r7o) (x_r7q PrelBase.:{-55,p-}{i} xs_r7r)
243 | [x_r7q elem_a1m2 vs_r7n] =
244 dfs_a1fz r_r7l (vs_r7n, ns_r7o) xs_r7r
245 | [PrelBase.otherwise{-818,p-}] =
250 (PrelBase.:{-55,p-}{i}
257 AbsBinds [] [] [([], vs'_r7t, vs'_a1g4), ([], ns'_r7u, ns'_a1g5)]
260 (PrelBase.:{-55,p-}{i}
263 PrelBase.[]{-5i,p-}{i}
273 stronglyConnComp{-r6r,x-},
274 stronglyConnComp_a1gH)]
287 stronglyConnComp_a1gH
289 = PrelTup.snd{-rF4,p-}
290 [[vertex{-a1gK-}], [[vertex{-a1gK-}]]] span_tree_a1m4 new_range_a1m6 reversed_edges_r6F
291 (PrelBase.[]{-5i,p-}{i}
293 PrelBase.[]{-5i,p-}{i}
296 [[vertex{-a1gK-}], [vertex{-a1gK-}]] dfs_a1m3 new_range_a1m5 es_r6B
297 (PrelBase.[]{-5i,p-}{i}
299 PrelBase.[]{-5i,p-}{i}
307 [([t{-a1h2-}], span_tree_r6I, span_tree_a1gO)]
309 PrelList.elem{-rF6,p-}
319 r_r6Y (vs_r70, ns_r71) PrelBase.[]{-5i,p-}{i}
322 r_r74 (vs_r76, ns_r77) (x_r79 PrelBase.:{-55,p-}{i} xs_r7a)
323 | [x_r79 elem_a1m8 vs_r76] =
324 span_tree_a1gO r_r74 (vs_r76, ns_r77) xs_r7a
325 | [PrelBase.otherwise{-818,p-}] =
328 PrelBase.:{-55,p-}{i}
330 (PrelBase.:{-55,p-}{i}
340 [([], vs'_r7c, vs'_a1hj), ([], ns'_r7d, ns'_a1hk)]
343 (PrelBase.:{-55,p-}{i}
346 PrelBase.[]{-5i,p-}{i}
357 [t{-a1hV-}, t{-a1i0-}]
359 [([t{-a1hV-}, t{-a1i0-}], new_range_r6H, new_range_a1hN)]
365 PrelBase.[]{-5i,p-}{i} w_r6Q
366 = PrelBase.[]{-5i,p-}{i}
369 ((x_r6S, y_r6T) PrelBase.:{-55,p-}{i} xys_r6U) w_r6W
370 = if x_r6S ==_a1m9 w_r6W then
371 PrelBase.:{-55,p-}{i}
373 y_r6T (new_range_a1hN xys_r6U w_r6W)
375 new_range_a1hN xys_r6U w_r6W
379 [vertex{-a1gK-}, vertex{-a1gK-}]
383 [vertex{-a1gK-}, vertex{-a1gK-}]
386 AbsBinds [v{-a1iv-}] [] [([v{-a1iv-}], swap_r6G, swap_a1im)]
392 AbsBinds [] [] [([], reversed_edges_r6F, reversed_edges_a1iy)]
395 [Edge{-r8K,x-} vertex{-a1gK-}, Edge{-r8K,x-} vertex{-a1gK-}] swap_r6G
404 [([vertex{-a1jI-}], topSort{-r6t,x-}, topSort_a1jF)]
413 stronglyConnComp_a1ma =
414 stronglyConnComp{-r6r,x-}
418 edges_r7E vertices_r7G
420 PrelBase.[]{-5i,p-}{i}
421 -> Succeeded{-r4G,x-}{i}
422 [[vertex{-a1jI-}], [[vertex{-a1jI-}]]] [ v_r7N |
423 [v_r7N] <- singletons_r7K
425 _ -> Failed{-r4F,x-}{i}
426 [[vertex{-a1jI-}], [[vertex{-a1jI-}]]] cycles_r7J
429 AbsBinds [] [] [([], sccs_r7I, sccs_a1jM)]
431 = stronglyConnComp_a1ma edges_r7E vertices_r7G
437 [([], cycles_r7J, cycles_a1jT), ([],
440 (cycles_a1jT, singletons_a1jU)
441 = List.partition{-rhM,p-}
442 [vertex{-a1jI-}] isCyclic_a1mb edges_r7E sccs_r7I
449 [([vertex{-a1kQ-}], mkDigraph{-r6z,x-}, mkDigraph_a1kM)]
451 = MkDigraph{-r8L,x-}{i}
454 ghc: module version changed to 1; reason: no old .hi file
455 _interface_ Digraphs 1
457 ArrBase Foreign IO PrelNum
459 List 1 :: partition 1;
460 PrelBase 1 :: $d14 1 $d15 1 $d22 1 $d23 1 $d24 1 $d25 1 $d26 1 $d27 1 $d32 1 $d34 1 $d37 1 $d39 1 $d41 1 $d44 1 $d45 1 $d46 1 $d49 1 $d51 1 $d6 1 $d7 1 otherwise 1 Eq 1 Eval 1 Functor 1 Monad 1 MonadPlus 1 MonadZero 1 Ord 1 Ordering 1;
461 PrelList 1 :: elem 1 head 1;
462 PrelNum 1 :: $d17 1 $d18 1;
463 PrelTup 1 :: $d11 1 $d13 1 $d15 1 $d49 1 $d51 1 $d9 1 snd 1;
464 Set 2 :: $d1 2 elementOf 2 setToList 2 Set 1;
466 Digraphs dfs isCyclic isRecursiveCycle lookupVertex mkDigraph mkEdges mkVertices stronglyConnComp topSort Cycle Digraph(MkDigraph) Edge FlattenedDependencyInfo MaybeErr(Succeeded Failed);
468 instance _forall_ [a b] => {PrelBase.Eval (MaybeErr a b)} = $d1;
469 instance _forall_ [a] => {PrelBase.Eval (Digraph a)} = $d2;
471 1 $d1 _:_ _forall_ [a b] => {PrelBase.Eval (MaybeErr a b)} ;;
472 1 $d2 _:_ _forall_ [a] => {PrelBase.Eval (Digraph a)} ;;
473 1 type Cycle r8C = [r8C] ;
474 1 data Digraph r8G = MkDigraph [r8G] ;
475 1 type Edge r8E = (r8E, r8E) ;
476 1 type FlattenedDependencyInfo r8y r8z r8A = [(r8y, Set.Set r8z, Set.Set r8z, r8A)] ;
477 1 data MaybeErr r8v r8w = Succeeded r8v | Failed r8w ;
478 1 dfs _:_ _forall_ [a] {PrelBase.Eq a} => (a -> [a]) -> ([a], [a]) -> [a] -> ([a], [a]) ;;
479 1 isCyclic _:_ _forall_ [a] {PrelBase.Eq a} => [Edge a] -> [a] -> PrelBase.Bool ;;
480 1 isRecursiveCycle _:_ _forall_ [a] {PrelBase.Eq a} => Cycle a -> [Edge a] -> PrelBase.Bool ;;
481 1 lookupVertex _:_ _forall_ [a b c] {PrelBase.Eq b, PrelBase.Ord a} => FlattenedDependencyInfo b a c -> b -> c ;;
482 1 mkDigraph _:_ _forall_ [a] => [a] -> Digraph a ;;
483 1 mkEdges _:_ _forall_ [a b c] {PrelBase.Eq c, PrelBase.Ord a} => [c] -> FlattenedDependencyInfo c a b -> [Edge c] ;;
484 1 mkVertices _:_ _forall_ [a b c] => FlattenedDependencyInfo c a b -> [c] ;;
485 1 stronglyConnComp _:_ _forall_ [a] {PrelBase.Eq a} => [Edge a] -> [a] -> [[a]] ;;
486 1 topSort _:_ _forall_ [a] {PrelBase.Eq a} => [Edge a] -> [a] -> MaybeErr [a] [[a]] ;;