anchor.diff:      end.
   
   used_vars_blk(#b_blk{is=Is,last=Last}, Used0) ->
  -    Used = ordsets:union(Used0, beam_ssa:used(Last)),
  +    Used = cerl_sets:union(Used0, cerl_sets:from_list(beam_ssa:used(Last))),
       used_vars_is(reverse(Is), Used).
   
   used_vars_is([#b_set{op=phi}|Is], Used) ->
       used_vars_is(Is, Used);
   used_vars_is([#b_set{dst=Dst}=I|Is], Used0) ->
  -    Used1 = ordsets:union(Used0, beam_ssa:used(I)),
  -    Used = ordsets:del_element(Dst, Used1),
  +    Used1 = cerl_sets:union(Used0, cerl_sets:from_list(beam_ssa:used(I))),
  +    Used = cerl_sets:del_element(Dst, Used1),
       used_vars_is(Is, Used);
   used_vars_is([], Used) ->
       Used.
  
positive.code: eval_switch_1([], _Arg, _PrevOp, Fail) ->
      %% Fail is now either the failure label or 'none'.
      Fail.
  
  bind_var(Var, Val0, Bs) ->
      Val = get_value(Val0, Bs),
  
negative.code:             case [{P,V} || {#b_var{}=V,P} <- PhiArgs] of
                  [_|_]=PhiVars ->
                      PhiLive0 = rel2fam(PhiVars),
                      PhiLive = [{{L,P},cerl_sets:union(cerl_sets:from_list(Vs), Live0)} ||
                                    {P,Vs} <- PhiLive0],
                      maps:merge(UsedVars, maps:from_list(PhiLive));
                  [] ->
  