anchor.diff:  
   
   %% =====================================================================
  -% @doc Attach syntax category information to AST nodes.
  +% @doc Attach syntax category information to AST nodes of functions.
   %% =====================================================================
  -%% -type (category():: pattern|expression|guard_expression|record_type|generator
  -%%                    record_field| {macro_name, none|int(), pattern|expression}
  -%%                    |operator
  +%% -type (category():: pattern|expression|guard_expression|record_type|record_field|
  +%%                     generator|{macro_name, none|int()|pattern|expression}|macro_arg|
  +%%                     operator|name|arity|binary_field).
   %%-spec(add_category(Node::syntaxTree()) -> syntaxTree()).
   add_category(Node) ->
       add_category(Node, none).
  
positive.code: 	application ->
  	    Op = refac_syntax:application_operator(Node),
  	    Args = refac_syntax:application_arguments(Node),
  	    Op1 = add_category(Op, C),
  	    Op2 = update_ann(Op1, {category, application_op}),
  	    Args1 = add_category(Args, C),
  	    Node1 = rewrite(Node, refac_syntax:application(Op2, Args1)),
  	    {update_ann(Node1, {category, C}), true};
  	match_expr ->
  	    P = refac_syntax:match_expr_pattern(Node),
  	    B = refac_syntax:match_expr_body(Node),
  
negative.code: 	    Name1 = add_category(Name, {macro_name, NumOfArgs, C}),
  	    Args1 = case Args of
  			none -> none;
  			_ -> add_category(Args, C)  
  		    end,
              %% this is not the best solution!!!
              Args2 = [update_ann(A, {category, macro_arg})||A<-Args1],
  	    Node1 = rewrite(Node, refac_syntax:macro(Name1, Args2)),
  	    {update_ann(Node1, {category, C}), true};
  	record_access ->
  	   Argument = refac_syntax:record_access_argument(Node),
  