anchor.diff:      end.
      
   
  +get_start_end_loc_with_comment(Node) when Node==[] ->
  +    {{0,0},{0,0}};
  +get_start_end_loc_with_comment(Node) when is_list(Node) ->
  +    {Start, _} = get_start_end_loc_with_comment(hd(Node)),
  +    {_, End} = get_start_end_loc_with_comment(lists:last(Node)),
  +    {Start, End};
  +get_start_end_loc_with_comment(Node) ->
  +    {Start={_StartLn, StartCol}, End} = refac_prettypr:get_start_end_loc(Node),
  +    PreCs = refac_syntax:get_precomments(Node),
  +    PostCs = refac_syntax:get_postcomments(Node),
  +    Start1 = case PreCs of
  +                 [] -> 
  +                     Start;
  +                 _ ->
  +                     {StartLn1, StartCol1}=refac_syntax:get_pos(hd(PreCs)),
  +                     {StartLn1, erlang:max(StartCol, StartCol1)}
  +             end,
  +    End1 = case PostCs of
  +               [] ->
  +                   End;
  +               _ ->
  +                   LastC = lists:last(PostCs),
  +                   LastCText = refac_syntax:comment_text(LastC),
  +                   {L, C}=refac_syntax:get_pos(LastC),
  +                   {L+length(LastCText)-1, C+length(lists:last(LastCText))-1}
  +           end,
  +    {Start1, End1}.
  +
  +
  +reset_ann_and_pos(Node) when is_list(Node) ->
  +    [reset_ann_and_pos(N)||N<-Node];
  +reset_ann_and_pos(Node) ->
  +    ast_traverse_api:full_buTP(
  +      fun (T, _Others) -> 
  +              refac_syntax:set_ann(
  +                refac_syntax:set_pos(T, {0,0}), [])
  +      end, Node, {}).
  +
  +reset_ann(Node) when is_list(Node) ->
  +    [reset_ann(N)||N<-Node];
  +reset_ann(Node) ->
  +    ast_traverse_api:full_buTP(
  +      fun (T, _Others) -> 
  +              refac_syntax:set_ann(T, [])
  +      end, Node, {}).
  +
  +
   %%-spec(concat_toks(Toks::[token()]) ->string()).
   concat_toks(Toks) ->
       concat_toks(Toks, "").
  
positive.code:       	 {V, _} -> 
  	     concat_toks(Ts, [V|Acc])
       end.
  
  
  
  get_start_end_loc_with_comment(Node) when Node==[] ->
      {{0,0},{0,0}};
  get_start_end_loc_with_comment(Node) when is_list(Node) ->
      {Start, _} = get_start_end_loc_with_comment(hd(Node)),
      {_, End} = get_start_end_loc_with_comment(lists:last(Node)),
      {Start, End};
  get_start_end_loc_with_comment(Node) ->
      {Start={_StartLn, StartCol}, End} = refac_prettypr:get_start_end_loc(Node),
      PreCs = refac_syntax:get_precomments(Node),
      PostCs = refac_syntax:get_postcomments(Node),
      Start1 = case PreCs of
                   [] -> 
                       Start;
                   _ ->
                       {StartLn1, StartCol1}=refac_syntax:get_pos(hd(PreCs)),
                       {StartLn1, erlang:max(StartCol, StartCol1)}
               end,
      End1 = case PostCs of
                 [] ->
                     End;
                 _ ->
                     LastC = refac_syntax:comment_text(lists:last(PostCs)),
                     {L, C}=refac_syntax:get_pos(lists:last(PostCs)),
                     {L, C+length(LastC)-1}
             end,
      {Start1, End1}.
  
negative.code: 	 make_new_name/2,collect_var_names/1,collect_used_macros/1,
  	 collect_used_records/1, ghead/2, glast/2, to_upper/1, to_lower/1, 
  	 is_var_name/1,is_fun_name/1, remove_duplicates/1,
  	 format_search_paths/1,default_incls/0, get_toks/1,
           reset_attrs/1, reset_ann_and_pos/1, reset_ann/1,
  	 get_env_vars/1,get_var_exports/1,get_bound_vars/1,get_free_vars/1,
  	 is_expr/1,is_expr_or_match/1, is_pattern/1, is_exported/2, inscope_funs/1,update_ann/2,
  	 delete_from_ann/2, callback_funs/1, is_callback_fun/3, rewrite/2, rewrite_with_wrapper/2,
  