@@ -131,7 +131,8 @@ adjustRankContent youngMark visitedMark groupRank content =
131 return groupRank
131 return groupRank
133 Alias _ args realVar ->
133 Alias _ args realVar ->
134− maximum <$> mapM go (realVar : map snd args)
134+ do realRank <- go realVar
135+ foldM (\rank (_, argVar) -> max rank <$> go argVar) realRank args
136 Structure (App1 func arg) ->
137 Structure (App1 func arg) ->
137 max <$> go func <*> go arg
138 max <$> go func <*> go arg
@@ -143,7 +144,8 @@ adjustRankContent youngMark visitedMark groupRank content =
143 return outermostRank
144 return outermostRank
145 Structure (Record1 fields extension) ->
146 Structure (Record1 fields extension) ->
146− maximum <$> mapM go (extension : Map.elems fields)
147+ do extRank <- go extension
148+ foldM (\rank field -> max rank <$> go field) extRank fields