anchor.diff:  %%  (including inside blocks).
   
   is_label_used_in(Lbl, Is) ->
  -    is_label_used_in_1(Is, Lbl, gb_sets:empty()).
  +    is_label_used_in_1(Is, Lbl, cerl_sets:new()).
   
   is_label_used_in_1([{block,Block}|Is], Lbl, Empty) ->
       lists:any(fun(I) -> is_label_used_in_block(I, Lbl) end, Block)
   	orelse is_label_used_in_1(Is, Lbl, Empty);
   is_label_used_in_1([I|Is], Lbl, Empty) ->
       Used = ulbl(I, Empty),
  -    gb_sets:is_member(Lbl, Used) orelse is_label_used_in_1(Is, Lbl, Empty);
  +    cerl_sets:is_element(Lbl, Used) orelse is_label_used_in_1(Is, Lbl, Empty);
   is_label_used_in_1([], _, _) -> false.
   
   is_label_used_in_block({set,_,_,Info}, Lbl) ->
  
positive.code: %% Test if label is used.
  
  is_label_used(L, St) ->
      gb_sets:is_member(L, St#st.labels).
  
  %% is_unreachable_after(Instruction) -> boolean()
  %%  Test whether the code after Instruction is unreachable.
  
negative.code: initial_labels([{label,Lbl}|Is], Acc) ->
      initial_labels(Is, [Lbl|Acc]);
  initial_labels([{func_info,_,_,_},{label,Lbl}|_], Acc) ->
      cerl_sets:from_list([Lbl|Acc]).
  
  drop_upto_label([{label,_}|_]=Is) -> Is;
  drop_upto_label([_|Is]) -> drop_upto_label(Is);
  