anchor.diff:      rename_vars(maps:from_list(Rename), From, Blocks);
   rename_vars(Rename, From, Blocks) when is_map(Rename)->
       Top = rpo(From, Blocks),
  -    Preds = gb_sets:from_list(Top),
  +    Preds = cerl_sets:from_list(Top),
       F = fun(#b_set{op=phi,args=Args0}=Set) ->
                   Args = rename_phi_vars(Args0, Preds, Rename),
                   Set#b_set{args=Args};
  
positive.code:     end.
  
  rpo_1([L|Ls], Blocks, Seen0, Acc0) ->
      case gb_sets:is_member(L, Seen0) of
          true ->
              rpo_1(Ls, Blocks, Seen0, Acc0);
          false ->
              Block = maps:get(L, Blocks),
              Seen1 = gb_sets:insert(L, Seen0),
              Successors = successors(Block),
              {Acc,Seen} = rpo_1(Successors, Blocks, Seen1, Acc0),
              rpo_1(Ls, Blocks, Seen, [L|Acc])
  
negative.code:       Labels :: [label()].
  
  rpo(From, Blocks) ->
      Seen = cerl_sets:new(),
      {Ls,_} = rpo_1(From, Blocks, Seen, []),
      Ls.
  
  