anchor.diff:               {value,_} ->
                    gb_trees:update(X, Type, Xs0)
            end,
  -    Vst#vst{current=St#st{x=Xs}};
  -set_type_x(Type, Reg, #vst{}) ->
  +    Defs = Defs0#{Reg=>Expr},
  +    Vst#vst{current=St#st{x=Xs,defs=Defs}};
  +set_type_x(Type, _Expr, Reg, #vst{}) ->
       error({invalid_store,Reg,Type}).
   
  -set_type_y(Type, {y,Y}=Reg, #vst{current=#st{y=Ys0}=St}=Vst)
  +set_type_y(Type, Expr, {y,Y}=Reg, #vst{current=#st{y=Ys0,defs=Defs0}=St}=Vst)
     when is_integer(Y), 0 =< Y ->
       check_limit(Reg),
       Ys = case gb_trees:lookup(Y, Ys0) of
  
positive.code: 		 gb_trees:update(Y, Type, Ys0)
  	 end,
      check_try_catch_tags(Type, Y, Ys0),
      Vst#vst{current=St#st{y=Ys}};
  set_type_y(Type, Reg, #vst{}) -> error({invalid_store,Reg,Type}).
  
  make_fragile({fragile,_}=Type) -> Type;
  make_fragile(Type) -> {fragile,Type}.
  
negative.code: 	    %% catch state).
  	    validate_src(Src, Vst),
  	    Type = bif_type(Op, Src, Vst),
  	    set_type_reg_expr(Type, I, Dst, Vst)
      end;
  %% Put instructions.
  valfun_1({put_list,A,B,Dst}, Vst0) ->
  