@@ -89,30 +89,30 @@ adjustRank youngMark visitedMark groupRank var =
8989
9090
9191adjustRankHelp :: Int -> Int -> Int -> Variable -> Descriptor -> TS.Solver Int
92−adjustRankHelp youngMark visitedMark groupRank var descriptor =
93− if _mark descriptor == youngMark then
92+adjustRankHelp youngMark visitedMark groupRank var descriptor@(Descriptor content rank mark _) =
93+ if mark == youngMark then
9494
9595 do -- Set the variable as marked first because it may be cyclic.
9696 liftIO $ UF.modifyDescriptor var $ \desc ->
9797 desc { _mark = visitedMark }
9898
9999 maxRank <-
100− adjustRankContent youngMark visitedMark groupRank (_content descriptor)
100+ adjustRankContent youngMark visitedMark groupRank content
101101
102102 liftIO $ UF.modifyDescriptor var $ \desc ->
103103 desc { _rank = maxRank }
104104
105105 return maxRank
106106
107− else if _mark descriptor /= visitedMark then
107+ else if mark /= visitedMark then
108108
109− do let minRank = min groupRank (_rank descriptor)
109+ do let minRank = min groupRank rank
110110 liftIO $ UF.setDescriptor var (descriptor { _mark = visitedMark, _rank = minRank })
111111 return minRank
112112
113113 else
114114
115− return (_rank descriptor)
115+ return rank
116116
117117
118118adjustRankContent :: Int -> Int -> Int -> Content -> TS.Solver Int