anchor.diff:                                Uses0 = maps:get(Var, Acc, []),
                                 Uses = [{Lbl, I} | Uses0],
                                 maps:put(Var, Uses, Acc)
  -                      end, UseMap, beam_ssa:used(I))
  +                      end, UseMap, used(I))
           end,
       F(Last, foldl(F, UseMap0, Is)).
   
  
positive.code:       From :: [label()],
        Blocks :: block_map().
  uses(From, Blocks) ->
      beam_ssa:fold_rpo(fun fold_uses_block/3, From, #{}, Blocks).
  
  fold_uses_block(Lbl, #b_blk{is=Is,last=Last}, UseMap0) ->
      F = fun(I, UseMap) ->
  
negative.code:             BefBlk = Blk#b_blk{is=Bef,last=Br},
              NewBlk = Blk#b_blk{is=Aft},
              Blocks1 = Blocks0#{L:=BefBlk,NewLbl=>NewBlk},
              Successors = successors(NewBlk),
              Blocks = update_phi_labels(Successors, L, NewLbl, Blocks1),
              split_blocks_1([NewLbl|Ls], P, Blocks, Count);
          no ->
              split_blocks_1(Ls, P, Blocks0, Count0)
  