anchor.diff:  -import(lists, [foldl/3,mapfoldl/3,reverse/1,reverse/2]).
   
   -type instruction() :: beam_utils:instruction().
  +
  +-include("beam_types.hrl").
   
   -spec module(beam_utils:module_code(), [compile:option()]) ->
                       {'ok',beam_utils:module_code()}.
  
positive.code:     RegVal = {Reg,Val},
      BlkIs = eliminate_moves_blk(BlkIs0, RegVal),
      eliminate_moves([{block,BlkIs}|Is], D, [I|Acc]);
  eliminate_moves([{label,Lbl},{block,BlkIs0}=Blk|Is], D, Acc0) ->
      Acc = [{label,Lbl}|Acc0],
      case {no_fallthrough(Acc0),D} of
  
negative.code: 
  no_fallthrough([I|_]) ->
      is_unreachable_after(I).
  
  is_proper_list(Reg, [{'%',{var_info,Reg,Info}}|_]) ->
      case proplists:get_value(type, Info) of
          #t_list{terminator=nil} ->
              true;
          _ ->
              %% Unknown type or not a proper list.
              false
      end;
  is_proper_list(Reg, [{'%',{var_info,_,_}}|Is]) ->
      is_proper_list(Reg, Is);
  is_proper_list(_, _) -> false.
  
  update_value_dict([Lit,{f,Lbl}|T], Reg, D0) ->
      D = case D0 of
  