maybe package:ghc
If a label is a local block label then return just its
BlockId,
otherwise
Nothing.
Returns Just w if the operation is an integer comparison with
width w, or Nothing otherwise.
maybeFlipCond c returns Just c' if it is possible to
flip the arguments to the conditional c, and the new
condition should be c'.
If we apply maybeInvertCond to the condition of a jump we
turn jumps taken into jumps not taken and vice versa.
Careful! If the used comparison and the conditional jump don't match
the above behaviour will NOT hold. When used for FP comparisons this
does not consider unordered numbers. Also inverting twice might return
a synonym for the original condition.
Retrieves the template of an unfolding if possible
maybeUnfoldingTemplate is used mainly when specialising, and we do
want to specialise DFuns, so it's important to return a template for
DFunUnfoldings
Maybe type indexed by open/closed