anchor.diff:  %% contexts to us.
   
   allow_context_passthrough({Fs, ModInfo0}) ->
  -    ModInfo =
  -        acp_forward_params([{F, beam_ssa:uses(F#b_function.bs)} || F <- Fs],
  -                           ModInfo0),
  +    FsUses = [{F, beam_ssa:uses(F#b_function.bs)} || F <- Fs],
  +    ModInfo = acp_forward_params(FsUses, ModInfo0),
       {Fs, ModInfo}.
   
   acp_forward_params(FsUses, ModInfo0) ->
  
positive.code:                 match_aliases = #{} :: match_alias_map() }).
  
  skip_outgoing_tail_extraction({Fs0, ModInfo}) ->
      Fs = map(fun(F) -> skip_outgoing_tail_extraction(F, ModInfo) end, Fs0),
      {Fs, ModInfo}.
  
  skip_outgoing_tail_extraction(#b_function{bs=Blocks0}=F, ModInfo) ->
  
negative.code:               renames = #{} :: beam_ssa:rename_map() }).
  
  combine_matches({Fs0, ModInfo}) ->
      Fs = [combine_matches(F, ModInfo) || F <- Fs0],
      {Fs, ModInfo}.
  
  combine_matches(#b_function{bs=Blocks0,cnt=Counter0}=F, ModInfo) ->
  