WeakTopologicalOrder.IteratorIterator module that traverses nodes in a weak topological order partition while tracking loop structure. For each edge (node -> succ), it identifies which loops are exited when moving from node to succ by checking if succ is outside the local scope of any enclosing loops.
module CFG : PreProcCfgval iter_nodes :
CFG.Node.t Partition.t ->
f:
(node:CFG.Node.t ->
succ:CFG.Node.t ->
exited_loops:CFG.Node.id list ->
unit) ->
get_succs:(CFG.Node.t -> CFG.Node.t list) ->
unit