anchor.diff:  
   %% 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(),
  
positive.code: 
  linearize(Blocks) ->
      Seen = gb_sets:empty(),
      {Linear,_} = linearize_1([0], Blocks, Seen, []),
      Linear.
  
  -spec rpo(Blocks) -> [Label] when
  
negative.code: -type cg_prim_op() :: 'bs_get' | 'bs_match_string' | 'bs_restore' | 'bs_skip' |
  'copy' | 'put_tuple_arity' | 'put_tuple_element'.
  
  -import(lists, [foldl/3,keyfind/3,mapfoldl/3,member/2,reverse/1]).
  
  -spec add_anno(Key, Value, Construct) -> Construct when
        Key :: atom(),
  