anchor.diff:  %%%
   vi_safe({label,Lbl}, #vst{current=St0,
                             ref_ctr=Counter0,
  -                          branched=B,
  -                          labels=Lbls}=Vst) ->
  -    {St, Counter} = merge_states(Lbl, St0, B, Counter0),
  +                          branched=Branched0,
  +                          labels=Labels0}=Vst) ->
  +    {St, Counter} = merge_states(Lbl, St0, Branched0, Counter0),
  +
  +    Branched = Branched0#{ Lbl => St },
  +    Labels = cerl_sets:add_element(Lbl, Labels0),
  +
       Vst#vst{current=St,
               ref_ctr=Counter,
  -            branched=gb_trees:enter(Lbl, St, B),
  -            labels=gb_sets:add(Lbl, Lbls)};
  +            branched=Branched,
  +            labels=Labels};
   vi_safe(_I, #vst{current=none}=Vst) ->
       %% Ignore all unreachable code.
       Vst;
  
positive.code:         X -> gcd(B, X)
      end.
  
  gb_trees_from_list(L) -> gb_trees:from_orddict(sort(L)).
  
  error(Error) -> throw(Error).
  
negative.code: 
  init_vst(Arity, Ls1, Ls2, Ft) ->
      Vst0 = init_function_args(Arity - 1, #vst{current=#st{}}),
      Branches = maps:from_list([{L,Vst0#vst.current} || L <- Ls1]),
      Labels = cerl_sets:from_list(Ls1++Ls2),
      Vst0#vst{branched=Branches,
               labels=Labels,
               ft=Ft}.
  