anchor.diff:                ?TO_AST("f@(Args01@@,"++NewArg++", Args02@@) ->
                               Body@@;")
             end,
  -          element(2,api_refac:fun_define_info(f@))==Op).
  -
  +          ?PP(f@)==Op).
  +        
   rule2(Op, NewArg, Nth) ->
        ?RULE(?T("M@:F@(Args@@)"),
             begin
  
positive.code:               ?TO_AST("{call, M@, F@, [Args1@@,"++NewArg++", Args2@@]}",
                        wrangler_syntax:get_pos(_This@))
            end,
            element(2, api_refac:fun_define_info(F@))==Op andalso
            api_refac:is_pattern(_This@)).
  
  rule4(Op, NewArgGen, Nth) ->
      ?RULE(?T("{call, M@, F@, [Args@@]}"),
  
negative.code:     end.
      
  
  camelCase_to_camel_case(Name) when is_atom(Name) ->
      camelCase_to_camel_case(atom_to_list(Name));
  camelCase_to_camel_case(Name) ->
      case Name of 
          [H|T] when (H >= 65) and (90 >= H)->
              camelCase_to_camel_case_1([H+32|T],[]);
          [H|T] when H==45 ->
              camelCase_to_camel_case_1([95|T],[]);
          _  ->
              camelCase_to_camel_case_1(Name,[])
      end.
  
  camelCase_to_camel_case_1([], Acc) ->
      lists:reverse(Acc);
  camelCase_to_camel_case_1([H|T], Acc)
    when  (H >= 65) and (90 >= H)->
      case Acc of 
          [95|_] ->
              camelCase_to_camel_case_1(T, [H + (97 - 65) |Acc]);
          _ ->
              camelCase_to_camel_case_1(T, [H + (97 - 65), 95|Acc])
      end;
  camelCase_to_camel_case_1([H|T], Acc) when H==45->
      camelCase_to_camel_case_1(T, [95|Acc]);
  camelCase_to_camel_case_1([H|T], Acc)->
      camelCase_to_camel_case_1(T, [H|Acc]).
      
  
  %%Notes: 
  %% 1) actual generator is not generated;
  %% 2).name conflict is not checked yet.
  