anchor.diff:                      I = I0#b_set{op=has_map_field,dst=SuccDst},
                       live_opt_is([I|Is], Live0, Acc);
                   _ ->
  -                    Live1 = gb_sets:delete(SuccDst, Live0),
  -                    Live = gb_sets:add(Dst, Live1),
  +                    Live1 = cerl_sets:del_element(SuccDst, Live0),
  +                    Live = cerl_sets:add_element(Dst, Live1),
                       live_opt_is([I0|Is], Live, [SuccI|Acc])
               end;
           {false, true} ->
  
positive.code: live_opt_is([#b_set{op={succeeded,guard},dst=SuccDst,args=[Dst]}=SuccI,
               #b_set{op=Op,dst=Dst}=I0|Is],
              Live0, Acc) ->
      case {gb_sets:is_member(SuccDst, Live0),
            gb_sets:is_member(Dst, Live0)} of
          {true, true} ->
              Live = gb_sets:delete(SuccDst, Live0),
              live_opt_is([I0|Is], Live, [SuccI|Acc]);
          {true, false} ->
              %% The result of the instruction before {succeeded,guard} is
  
negative.code:             live_opt_is(Is, Live0, Acc)
      end;
  live_opt_is([#b_set{dst=Dst}=I|Is], Live0, Acc) ->
      case cerl_sets:is_element(Dst, Live0) of
          true ->
              LiveUsed = cerl_sets:from_list(beam_ssa:used(I)),
              Live1 = cerl_sets:union(Live0, LiveUsed),
              Live = cerl_sets:del_element(Dst, Live1),
              live_opt_is(Is, Live, [I|Acc]);
          false ->
              case beam_ssa:no_side_effect(I) of
                  true ->
                      live_opt_is(Is, Live0, Acc);
                  false ->
                      LiveUsed = cerl_sets:from_list(beam_ssa:used(I)),
                      Live = cerl_sets:union(Live0, LiveUsed),
                      live_opt_is(Is, Live, [I|Acc])
              end
      end;
  