anchor.diff:                        end,         
               Body = refac_util:glast("refac_util:do_add_range, clause", refac_syntax:clause_body(Node)),
   	    {_S2, E2} = get_range(Body),
  -	    refac_syntax:add_ann({range, {min(S1, {L,C}), E2}}, Node);
  +	    update_ann(Node, {range, {min(S1, {L, C}), E2}});
   	catch_expr ->
   	    B = refac_syntax:catch_expr_body(Node),
   	    {S, E} = get_range(B),
   	    S1 = extend_forwards(Toks, S, 'catch'),
  -	    refac_syntax:add_ann({range, {S1, E}}, Node);
  +	    update_ann(Node, {range, {S1, E}});
   	if_expr ->
   	    Cs = refac_syntax:if_expr_clauses(Node),
   	    add_range_to_list_node(Node, Toks, Cs, "refac_util:do_add_range, if_expr",
  
positive.code: adjust_implicit_fun_loc(T, Toks)->
      Pos = refac_syntax:get_pos(T),
      Name = refac_syntax:implicit_fun_name(T),
      Toks2 = lists:dropwhile(fun (B) -> element(2, B) =/= Pos end, Toks),
      case refac_syntax:type(Name) of
          module_qualifier ->
              Arg = refac_syntax:module_qualifier_argument(Name),
              Body = refac_syntax:module_qualifier_body(Name),
              Fun = refac_syntax:arity_qualifier_body(Body),
              A = refac_syntax:arity_qualifier_argument(Body),
              [{'fun', Pos1},{atom, Pos2, _ModName}, {':', _},
               {atom, Pos4, _FunName}, {'/', _},
               {integer, Pos5, _Arity}|_Ts] = Toks2,
              Arg1 =add_range(refac_syntax:set_pos(Arg, Pos2),Toks),
              Fun1= add_range(refac_syntax:set_pos(Fun, Pos4),Toks),
              A1 = add_range(refac_syntax:set_pos(A, Pos5),Toks),
  
negative.code: 	    case E2 > E1  %%Temporal fix; need to change refac_syntax to make the pos info correct.
  		of
  		true ->
  		    update_ann(Node, {range, {S1, E2}});
  		false ->
  		    update_ann(Node, {range, {S1, E1}})
  	    end;
  	match_expr ->
  	    calc_and_add_range_to_node(Node, match_expr_pattern, match_expr_body);
  