anchor.diff:  labels_1(Is, R) ->
       {reverse(R),Is}.
   
  -init_state(Arity) ->
  +init_vst(Arity, Ls1, Ls2, Ft) ->
       Xs = init_regs(Arity, term),
       Ys = init_regs(0, initialized),
  -    kill_heap_allocation(#st{x=Xs,y=Ys,numy=none,ct=[]}).
  +    St = #st{x=Xs,y=Ys},
  +    Branches = gb_trees_from_list([{L,St} || L <- Ls1]),
  +    Labels = gb_sets:from_list(Ls1++Ls2),
  +    #vst{branched=Branches,
  +         current=St,
  +         labels=Labels,
  +         ft=Ft}.
   
   kill_heap_allocation(St) ->
       St#st{h=0,hf=0}.
  
positive.code: init_regs(0, _) ->
      gb_trees:empty();
  init_regs(N, Type) ->
      gb_trees_from_list([{R,Type} || R <- lists:seq(0, N-1)]).
  
  valfun([], MFA, _Offset, #vst{branched=Targets0,labels=Labels0}=Vst) ->
      Targets = gb_trees:keys(Targets0),
  
negative.code: 	    index_parameter_types(Fs, Acc0)
      end;
  index_parameter_types([], Acc) ->
      gb_trees:from_orddict(sort(Acc)).
  
  index_parameter_types_1([{'%', {type_info, Reg, Type0}} | Is], Entry, Acc) ->
      Type = case Type0 of
  