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'
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