anchor.diff:      end.
   
   rpo_1([L|Ls], Blocks, Seen0, Acc0) ->
  -    case gb_sets:is_member(L, Seen0) of
  +    case cerl_sets:is_element(L, Seen0) of
           true ->
               rpo_1(Ls, Blocks, Seen0, Acc0);
           false ->
               Block = maps:get(L, Blocks),
  -            Seen1 = gb_sets:insert(L, Seen0),
  +            Seen1 = cerl_sets:add_element(L, Seen0),
               Successors = successors(Block),
               {Acc,Seen} = rpo_1(Successors, Blocks, Seen1, Acc0),
               rpo_1(Ls, Blocks, Seen, [L|Acc])
  
positive.code:       Labels :: [label()].
  
  rpo(From, Blocks) ->
      Seen = gb_sets:empty(),
      {Ls,_} = rpo_1(From, Blocks, Seen, []),
      Ls.
  
  
negative.code:       Linear :: [{label(),b_blk()}].
  
  linearize(Blocks) ->
      Seen = cerl_sets:new(),
      {Linear0,_} = linearize_1([0], Blocks, Seen, []),
      Linear = fix_phis(Linear0, #{}),
      Linear.
  