anchor.diff:  scan_bs([], _Blocks, _FuncId, State) ->
       State.
   
  -scan_is([#b_set{op=peek_message,dst=Msg} | Is],
  -        Blk, Lbl, Blocks, FuncId, State0) ->
  -    #scan{recv_candidates=Candidates0} = State0,
  -
  -    Receives = maps:get(FuncId, Candidates0, []),
  -    Receive = {Lbl, Msg},
  -
  -    Candidates = Candidates0#{ FuncId => [Receive | Receives] },
  -
  -    State = State0#scan{recv_candidates=Candidates},
  -    scan_is(Is, Blk, Lbl, Blocks, FuncId, State);
   scan_is([#b_set{op={succeeded,body}}], Blk, Lbl, _Blocks, FuncId, State) ->
       #b_br{bool=#b_var{},succ=Succ} = Blk#b_blk.last, %Assertion.
   
  
positive.code:          end,
  
      {ok, Mod, Ws}.
  
  scan(#b_module{body=Fs0}) ->
      ModMap = foldl(fun(#b_function{bs=Blocks,args=Args}=F, Acc) ->
  
negative.code:       Options :: [compile:option()],
        Result :: {ok, beam_ssa:b_module(), list()}.
  
  module(#b_module{}=Mod, Opts) ->
      %% Quickly collect all peek_message instructions in this module,
      %% allowing us to avoid the expensive building of the module-wide
      %% graph of all blocks if there are no receives in this module.
      case scan_peek_message(Mod) of
          [] ->
              %% No receives in this module. Nothing more to do.
              {ok, Mod, []};
          [_ | _]=Rs0 ->
              Rs = maps:from_list(Rs0),
              module_1(Mod, Rs, Opts)
      end.
  
  module_1(Mod0, Rs, Opts) ->
      %% There are some receives in this module. Build a module-wide
      %% graph of all blocks (including calls between functions) and
      %% collect all suitable reference creations for later analysis.
      Scan0 = scan(Mod0),
      Scan = Scan0#scan{recv_candidates=Rs},
  
      %% Figure out where to place marker creation, usage, and clearing by
      %% walking through the module-wide graph.
      {Markers, Uses, Clears} = plan(Scan),
  
  