3 ================================================================================
6 _/\_ a_tr8i b_tr8j -> \ tpl_B1 ->
7 Succeeded{-rd,x-}{i} {_@_ a_tr8i _@_ b_tr8j tpl_B1}
9 _/\_ a_tr8i b_tr8j -> \ tpl_B1 ->
10 Failed{-rc,x-}{i} {_@_ a_tr8i _@_ b_tr8j tpl_B1}
11 MkDigraph{-r8z,x-}{i} =
12 _/\_ vertex_tr8t -> \ tpl_B1 ->
13 MkDigraph{-r8z,x-}{i} {_@_ vertex_tr8t tpl_B1}
17 [([ta14c], isRecursiveCycle{-r6D,x-}, isRecursiveCycle_a147)]
21 PrelTup.$d9{-rDa,p-} [ta14c, ta14c] [d.Eq_a14v, d.Eq_a14w]
22 elem_a1gA = PrelList.elem{-rDi,p-} (ta14c, ta14c) d.Eq_a14t
23 isRecursiveCycle_a147 [vertex_r8c] edges_r8d
24 = (vertex_r8c, vertex_r8c) elem_a1gA edges_r8d
25 isRecursiveCycle_a147 cycle_r8f edges_r8g
26 = PrelBase.True{-5E,w-}{i}
29 [d.Eq_a15B, d.Ord_a15C]
30 [([ta14J, ta14I, ta14K], lookupVertex{-r6C,x-}, lookupVertex_a14F)]
32 ==_a1gB = PrelBase.=={-8Y,p-} ta14I d.Eq_a15E
33 lookupVertex_a14F flat_info_r84 vertex_r85
34 = PrelList.head{-rEs,p-} ta14K code_list_r87
37 AbsBinds [] [] [([], code_list_r87, code_list_a14O)]
40 (vertex'_r89, _, _, code_r8a) <- flat_info_r84, vertex_r85
46 [d.Eq_a17I, d.Ord_a17J]
47 [([ta160, ta161, ta15X], mkEdges{-r6B,x-}, mkEdges_a15U)]
48 d.Ord_a17F = d.Ord_a17J
49 d.MonadZero_a17G = PrelBase.$d24{-ri3,p-}
50 mkEdges_a15U vertices_r7M flat_info_r7N
51 = [(source_vertex_r7X, target_vertex_r82) |
52 (source_vertex_r7X, _, used_names_r7Y, _) <- flat_info_r7N, target_name_r80 <- Set.setToList{-rge,p-}
53 ta160 used_names_r7Y, target_vertex_r82 <- vertices_defining_a1gC target_name_r80
58 [ta16m, ta16r, ta16u, aa16w, ta16z]
59 [d.Ord_a16M, d.MonadZero_a16S]
60 [([ta16m, ta16r, ta16u, aa16w, ta16z],
61 vertices_defining_r7P,
62 vertices_defining_a163)]
64 PrelBase.scsel_MonadZeroPrelBaseMonad{-a1gH,p-} aa16w
66 elementOf_a1gD = Set.elementOf{-rg7,p-} ta16z d.Ord_a16M
67 >>=_a1gE = PrelBase.>>={-811,p-} aa16w d.Monad_a16O
68 d.Monad_a16Q = d.Monad_a16O
69 return_a1gF = PrelBase.return{-816,p-} aa16w d.Monad_a16Q
70 zero_a1gG = PrelBase.zero{-810,p-} aa16w d.MonadZero_a16S
71 vertices_defining_a163 name_r7R flat_info_r7S
73 (vertex_r7U, names_defined_r7V, _, _) <- flat_info_r7S, name_r7R
74 elementOf_a1gD names_defined_r7V]
76 vertices_defining_a1gC =
78 [ta15X, Set.Set{-rg4,p-} ta160, ta161, PrelBase.[]{-3j,W-}, ta160]
79 [d.Ord_a17F, d.MonadZero_a17G]
84 [([ta181, ta182, ta180], mkVertices{-r6A,x-}, mkVertices_a17X)]
85 mkVertices_a17X info_r7I
86 = [vertex_r7K | (vertex_r7K, _, _, _) <- info_r7I]
90 [([ta18F], isCyclic{-r6y,x-}, isCyclic_a18C)]
94 PrelTup.$d9{-rDa,p-} [ta18F, ta18F] [d.Eq_a190, d.Eq_a191]
95 elem_a1gI = PrelList.elem{-rDi,p-} (ta18F, ta18F) d.Eq_a18Y
96 isCyclic_a18C edges_r7r [v_r7s]
97 = (v_r7s, v_r7s) elem_a1gI edges_r7r
98 isCyclic_a18C edges_r7u vs_r7v = PrelBase.True{-5E,w-}{i}
99 AbsBinds [ta1au] [d.Eq_a1aw] [([ta1au], dfs{-r6F,x-}, dfs_a193)]
100 elem_a1gJ = PrelList.elem{-rDi,p-} ta1au d.Eq_a1aw
101 dfs_a193 r_r7e (vs_r7f, ns_r7g) PrelBase.[]{-5i,w-}{i}
105 (x_r7l PrelBase.:{-55,w-}{i} xs_r7m)
106 | x_r7l elem_a1gJ vs_r7j = dfs_a193 r_r7i (vs_r7j, ns_r7k) xs_r7m
107 | PrelBase.otherwise{-818,p-}
110 ++_a1gs ta1au (PrelBase.:{-55,w-}{i} ta1au x_r7l ns'_r7p) ns_r7k)
114 AbsBinds [] [] [([], vs'_r7o, vs'_a19M), ([], ns'_r7p, ns'_a19N)]
117 (PrelBase.:{-55,w-}{i} ta1au x_r7l vs_r7j,
118 PrelBase.[]{-5i,w-}{i} ta1au)
125 [([ta1aG], stronglyConnComp{-r6x,x-}, stronglyConnComp_a1aD)]
126 d.Eq_a1e9 = d.Eq_a1eb
127 d.Eq_a1e6 = d.Eq_a1eb
128 d.Eq_a1ed = d.Eq_a1eb
129 dfs_a1gK = dfs{-r6F,x-} ta1aG d.Eq_a1ed
130 d.Eq_a1e7 = d.Eq_a1eb
131 stronglyConnComp_a1aD es_r6H vs_r6I
132 = PrelTup.snd{-rDg,p-}
133 [[ta1aG], [[ta1aG]]] span_tree_a1gL new_range_a1gM reversed_edges_r6K
134 (PrelBase.[]{-5i,w-}{i} ta1aG,
135 PrelBase.[]{-5i,w-}{i} [ta1aG])
137 [[ta1aG], [ta1aG]] dfs_a1gK new_range_a1gN es_r6H
138 (PrelBase.[]{-5i,w-}{i}
140 PrelBase.[]{-5i,w-}{i}
148 [([ta1c5], span_tree_r6N, span_tree_a1aK)]
149 elem_a1gO = PrelList.elem{-rDi,p-} ta1c5 d.Eq_a1c7
150 d.Eq_a1c9 = d.Eq_a1c7
151 dfs_a1gP = dfs{-r6F,x-} ta1c5 d.Eq_a1c9
152 span_tree_a1aK r_r71 (vs_r72, ns_r73) PrelBase.[]{-5i,w-}{i}
156 (x_r78 PrelBase.:{-55,w-}{i} xs_r79)
157 | x_r78 elem_a1gO vs_r76
158 = span_tree_a1aK r_r75 (vs_r76, ns_r77) xs_r79
159 | PrelBase.otherwise{-818,p-}
160 = span_tree_a1aK r_r75
162 PrelBase.:{-55,w-}{i} [ta1c5]
163 (PrelBase.:{-55,w-}{i} ta1c5
172 [([], vs'_r7b, vs'_a1bt), ([],
177 (PrelBase.:{-55,w-}{i} ta1c5
179 PrelBase.[]{-5i,w-}{i}
185 span_tree_a1gL = span_tree_r6N ta1aG d.Eq_a1e9
191 [([ta1cF, ta1cI], new_range_r6M, new_range_a1cb)]
192 ==_a1gQ = PrelBase.=={-8Y,p-} ta1cF d.Eq_a1cK
193 new_range_a1cb PrelBase.[]{-5i,w-}{i} w_r6U
194 = PrelBase.[]{-5i,w-}{i} ta1cI
195 new_range_a1cb ((x_r6W, y_r6X) PrelBase.:{-55,w-}{i} xys_r6Y)
197 = if x_r6W ==_a1gQ w_r6Z then
198 PrelBase.:{-55,w-}{i} ta1cI
199 y_r6X (new_range_a1cb xys_r6Y w_r6Z)
201 new_range_a1cb xys_r6Y w_r6Z
203 new_range_a1gM = new_range_r6M [ta1aG, ta1aG] d.Eq_a1e6
204 new_range_a1gN = new_range_r6M [ta1aG, ta1aG] d.Eq_a1e7
207 AbsBinds [ta1cZ] [] [([ta1cZ], swap_r6L, swap_a1cQ)]
208 swap_a1cQ (x_r6R, y_r6S) = (y_r6S, x_r6R)
212 AbsBinds [] [] [([], reversed_edges_r6K, reversed_edges_a1d6)]
214 = map_a1gr [Edge{-r8x,x-} ta1aG, Edge{-r8x,x-} ta1aG] swap_r6L
222 [([ta1eo], topSort{-r6z,x-}, topSort_a1el)]
223 d.Eq_a1fp = d.Eq_a1fh
224 isCyclic_a1gR = isCyclic{-r6y,x-} ta1eo d.Eq_a1fp
225 d.Eq_a1fr = d.Eq_a1fh
226 stronglyConnComp_a1gS = stronglyConnComp{-r6x,x-} ta1eo d.Eq_a1fr
227 topSort_a1el edges_r7x vertices_r7y
229 PrelBase.[]{-5i,w-}{i}
230 -> Succeeded{-rd,x-}{i} [[ta1eo], [[ta1eo]]] [v_r7F |
231 [v_r7F] <- singletons_r7C]
232 _ -> Failed{-rc,x-}{i} [[ta1eo], [[ta1eo]]] cycles_r7B
235 AbsBinds [] [] [([], sccs_r7A, sccs_a1es)]
236 sccs_a1es = stronglyConnComp_a1gS edges_r7x vertices_r7y
243 [([], cycles_r7B, cycles_a1ez), ([],
246 (cycles_a1ez, singletons_a1eA)
247 = List.partition{-rhs,p-} [ta1eo] isCyclic_a1gR edges_r7x sccs_r7A
250 AbsBinds [ta1fx] [] [([ta1fx], mkDigraph{-r6E,x-}, mkDigraph_a1ft)]
251 mkDigraph_a1ft = MkDigraph{-r8z,x-}{i} ta1fx
255 [([ta1g2, ta1g3], $d1{-r1gl,x-}, d.Eval_a1fE)]
256 d.Eval_a1fE = ({-dict-} [] [])
257 AbsBinds [ta1g4] [] [([ta1g4], $d2{-r1gn,x-}, d.Eval_a1fK)]
258 d.Eval_a1fK = ({-dict-} [] [])
259 d.Monad_a1fM = PrelBase.$d25{-ri4,p-}
260 >>=_a1go = PrelBase.>>={-811,p-} PrelBase.[]{-3j,W-} d.Monad_a1fM
261 d.Monad_a1fP = d.Monad_a1fM
263 PrelBase.return{-816,p-} PrelBase.[]{-3j,W-} d.Monad_a1fP
264 d.MonadZero_a1fR = PrelBase.$d24{-ri3,p-}
266 PrelBase.zero{-810,p-} PrelBase.[]{-3j,W-} d.MonadZero_a1fR
267 d.Functor_a1fU = PrelBase.$d26{-ri5,p-}
268 map_a1gr = PrelBase.map{-rn5,p-} PrelBase.[]{-3j,W-} d.Functor_a1fU
269 d.MonadPlus_a1fX = PrelBase.$d23{-ri2,p-}
270 ++_a1gs = PrelBase.++{-rn8,p-} PrelBase.[]{-3j,W-} d.MonadPlus_a1fX
272 return_a1gu = return_a1gp
274 return_a1gw = return_a1gp
276 return_a1gy = return_a1gp
277 zero_a1gz = zero_a1gq
278 ghc: module version changed to 1; reason: no old .hi file
279 _interface_ ShouldSucceed 1
283 List 1 :: partition 1;
284 PrelBase 1 :: $d15 1 $d16 1 $d2 1 $d23 1 $d24 1 $d25 1 $d26 1 $d27 1 $d28 1 $d33 1 $d35 1 $d38 1 $d40 1 $d42 1 $d45 1 $d46 1 $d47 1 $d50 1 $d52 1 $d7 1 $d8 1 $m/= 1 $m< 1 $m<= 1 $m> 1 $m>= 1 $m>> 1 $mcompare 1 $mmax 1 $mmin 1 otherwise 1 Eq 1 Eval 1 Functor 1 Monad 1 MonadPlus 1 MonadZero 1 Ord 1 Ordering 1;
285 PrelList 1 :: elem 1 head 1;
286 PrelNum 1 :: $d17 1 $d18 1;
287 PrelTup 1 :: $d11 1 $d13 1 $d15 1 $d49 1 $d51 1 $d9 1 snd 1;
288 Set 1 :: $d1 1 $d2 1 elementOf 1 setToList 1 Set 1;
290 ShouldSucceed dfs isCyclic isRecursiveCycle lookupVertex mkDigraph mkEdges mkVertices stronglyConnComp topSort Cycle Digraph(MkDigraph) Edge FlattenedDependencyInfo MaybeErr(Succeeded Failed);
292 instance _forall_ [a b] => {PrelBase.Eval (MaybeErr a b)} = $d1;
293 instance _forall_ [vertex] => {PrelBase.Eval (Digraph vertex)} = $d2;
295 1 $d1 _:_ _forall_ [a b] => {PrelBase.Eval (MaybeErr a b)} ;;
296 1 $d2 _:_ _forall_ [vertex] => {PrelBase.Eval (Digraph vertex)} ;;
297 1 type Cycle vertex = [vertex] ;
298 1 data Digraph vertex = MkDigraph [vertex] ;
299 1 type Edge vertex = (vertex, vertex) ;
300 1 type FlattenedDependencyInfo vertex name code = [(vertex, Set.Set name, Set.Set name, code)] ;
301 1 data MaybeErr a b = Succeeded a | Failed b ;
302 1 dfs _:_ _forall_ [ta] {PrelBase.Eq ta} => (ta -> [ta]) -> ([ta], [ta]) -> [ta] -> ([ta], [ta]) ;;
303 1 isCyclic _:_ _forall_ [ta] {PrelBase.Eq ta} => [Edge ta] -> [ta] -> PrelBase.Bool ;;
304 1 isRecursiveCycle _:_ _forall_ [ta] {PrelBase.Eq ta} => Cycle ta -> [Edge ta] -> PrelBase.Bool ;;
305 1 lookupVertex _:_ _forall_ [ta tb tc] {PrelBase.Eq tb, PrelBase.Ord ta} => FlattenedDependencyInfo tb ta tc -> tb -> tc ;;
306 1 mkDigraph _:_ _forall_ [ta] => [ta] -> Digraph ta ;;
307 1 mkEdges _:_ _forall_ [ta tb tc] {PrelBase.Eq tc, PrelBase.Ord ta} => [tc] -> FlattenedDependencyInfo tc ta tb -> [Edge tc] ;;
308 1 mkVertices _:_ _forall_ [ta tb tc] => FlattenedDependencyInfo tc ta tb -> [tc] ;;
309 1 stronglyConnComp _:_ _forall_ [ta] {PrelBase.Eq ta} => [Edge ta] -> [ta] -> [[ta]] ;;
310 1 topSort _:_ _forall_ [ta] {PrelBase.Eq ta} => [Edge ta] -> [ta] -> MaybeErr [ta] [[ta]] ;;