anchor.diff:  
   linearize(Blocks) ->
       Seen = gb_sets:empty(),
  -    {Linear,_} = linearize_1([0], Blocks, Seen, []),
  +    {Linear0,_} = linearize_1([0], Blocks, Seen, []),
  +    Linear = fix_phis(Linear0, #{}),
       Linear.
   
   -spec rpo(Blocks) -> [Label] when
  
positive.code: linearize_1([], _, Seen, Acc) ->
      {Acc,Seen}.
  
  rpo_1([L|Ls], Blocks, Seen0, Acc0) ->
      case gb_sets:is_member(L, Seen0) of
          true ->
  
negative.code: 
  %% linearize(Blocks) -> [{BlockLabel,#b_blk{}}].
  %%  Linearize the intermediate representation of the code.
  %%  Unreachable blocks will be discarded, and phi nodes will
  %%  be adjusted so that they no longer refers to discarded
  %%  blocks or to blocks that no longer are predecessors of
  %%  the phi node block.
  
  -spec linearize(Blocks) -> Linear when
        Blocks :: block_map(),
  