anchor.diff:  env__new_vname(Env) ->
       rec_env:new_key(Env).
   
  +env__new_tname(Env) ->
  +    rec_env:new_key(fun(I) ->
  +                            list_to_atom("@i"++integer_to_list(I))
  +                    end, Env).
  +
   env__new_fname(A, N, Env) ->
       rec_env:new_key(fun (X) ->
   			S = integer_to_list(X),
  
positive.code:     Name = env__new_vname(Env),
      c_var(Name).
  
  residualize_var(R, S) ->
      S1 = count_size(weight(var), S),
      {ref_to_var(R), st__set_var_referenced(R#ref.loc, S1)}.
  
negative.code: 	    T = make_data_skel(data_type(E), Ts),
  	    E1 = update_data(E, data_type(E),
  			     [hd(get_ann(T)) || T <- Ts]),
  	    V = new_template_var(Env1),
  	    Env2 = env__bind(var_name(V), E1, Env1),
  	    {set_ann(T, [V]), [V | Vs1], Env2};
  	false ->
  