anchor.diff:  -type reg_tab() :: gb_trees:tree(index(), 'none' | {'value', _}).
   
   -record(st,				%Emulation state
  -	{x :: reg_tab(),                %x register info.
  -	 y :: reg_tab(),                %y register info.
  -	 f=init_fregs(),                %
  -	 numy=none,			%Number of y registers.
  -	 h=0,				%Available heap size.
  -	 hf=0,				%Available heap size for floats.
  -	 fls=undefined,			%Floating point state.
  -	 ct=[],				%List of hot catch/try labels
  -         setelem=false,                 %Previous instruction was setelement/3.
  -         puts_left=none,                %put/1 instructions left.
  -         defs=#{},                      %Defining expression for each register.
  +	{x=gb_trees:empty() :: reg_tab(), %x register info.
  +	 y=gb_trees:empty() :: reg_tab(), %y register info.
  +	 f=init_fregs(),                  %
  +	 numy=none,			  %Number of y registers.
  +	 h=0,				  %Available heap size.
  +	 hf=0,				  %Available heap size for floats.
  +	 fls=undefined,			  %Floating point state.
  +	 ct=[],				  %List of hot catch/try labels
  +         setelem=false,                   %Previous instruction was setelement/3.
  +         puts_left=none,                  %put/1 instructions left.
  +         defs=#{},                        %Defining expression for each register.
            aliases=#{}
   	}).
   
  
positive.code: valfun_4({loop_rec_end,_}, Vst) ->
      verify_y_init(Vst),
      kill_state(Vst);
  valfun_4(timeout, #vst{current=St}=Vst) ->
      Vst#vst{current=St#st{x=init_regs(0, term)}};
  valfun_4(send, Vst) ->
      call(send, 2, Vst);
  valfun_4({set_tuple_element,Src,Tuple,N}, Vst) ->
  
negative.code:     {reverse(R),Is}.
  
  init_vst(Arity, Ls1, Ls2, Ft) ->
      Vst0 = init_function_args(Arity - 1, #vst{current=#st{}}),
      Branches = gb_trees_from_list([{L,Vst0#vst.current} || L <- Ls1]),
      Labels = gb_sets:from_list(Ls1++Ls2),
      Vst0#vst{branched=Branches,
               labels=Labels,
               ft=Ft}.
  
  init_function_args(-1, Vst) ->
      Vst;
  init_function_args(X, Vst) ->
      init_function_args(X - 1, create_term(term, argument, [], {x,X}, Vst)).
  
  kill_heap_allocation(St) ->
      St#st{h=0,hf=0}.
  
  valfun([], MFA, _Offset, #vst{branched=Targets0,labels=Labels0}=Vst) ->
      Targets = gb_trees:keys(Targets0),
  