anchor.diff:  
   update_ann(_, none) -> none;
   update_ann({Key, Val},Node) ->
  -    As0 = refac_syntax:get_ann(Node),
  -    As1 = case lists:keysearch(Key, 1, As0) of
  -	    {value, _} -> lists:keyreplace(Key, 1, As0, {Key, Val});
  -	    _ -> [{Key, Val}|As0]
  -	  end,
  -    refac_syntax:set_ann(Node, As1).
  +    case is_tree(Node) of
  +        true ->
  +            As0 = refac_syntax:get_ann(Node),
  +            As1 = case lists:keysearch(Key, 1, As0) of
  +                      {value, _} -> lists:keyreplace(Key, 1, As0, {Key, Val});
  +                      _ -> [{Key, Val}|As0]
  +                  end,
  +            refac_syntax:set_ann(Node, As1);
  +        false ->
  +            Node
  +    end.
   
   
   %% =====================================================================
  
positive.code: %%	Arguments = none | [syntaxTree()]
  
  macro(Name, Arguments) ->
      tree(macro, #macro{name = update_ann({syntax_path, macro_name}, Name), 
                         arguments = case Arguments of 
                                         none -> none;
                                         _ ->[update_ann({syntax_path, macro_argument}, A)
                                              ||A<-Arguments]
                                     end
                         }).
  
  %% =====================================================================
  %% @spec macro_name(syntaxTree()) -> syntaxTree()
  
negative.code: get_pos({error, {Pos, _, _}}) -> Pos;
  get_pos({error, {{Pos, _, _}, _}}) -> Pos;
  get_pos({warning, {Pos, _, _}}) -> Pos;
  get_pos(Node) when is_tuple(Node)->
      %% Here, we assume that we have an `erl_parse' node with position
      %% information in element 2.
      element(2, Node);
  get_pos(_Node) ->
      {0,0}.
  
  %% =====================================================================
  %% @spec set_pos(Node::syntaxTree(), Pos::term()) -> syntaxTree()
  