loop package:ghc

"for" loop with increment at end of body
Determine loop membership of blocks based on Dominator analysis. This is slower but gives loop levels instead of just loop membership. However it only detects natural loops. Irreducible control flow is not recognized even if it loops. But that is rare enough that we don't have to care about that special case.
Determine loop membership of blocks based on SCC analysis This is faster but only gives yes/no answers.
"for" loop with increment at end of body
Takes the variable declarations and imports from the monad and makes an environment, which is looped back into the computation. In this way, we can have embedded declarations that scope over the whole procedure, and imports that scope over the entire module. Discards the local declaration contained within decl'
v -> v
Loopification enabled (cf -floopification)
This identifier breaks a loop of mutually recursive functions. The field marks whether it is only a loop breaker due to a reference in a rule