anchor.diff:  		  when
   		      M =/= '_' andalso F =/= '_' -> 
   		    Args1 = do_type_ann_args({M, F, A}, map_args(Pats, Args), Args, Pid),
  -		    refac_util:rewrite(Node, refac_syntax:application(Op, Args1));
  +		    Node1 =refac_util:rewrite(Node, refac_syntax:application(Op, Args1)),
  +		    do_type_ann_op(FileName, Node1, SearchPaths, TabWidth, Pid);
   		_ -> %% Either module name or function name is not an atom;
   		    do_type_ann_op(FileName, Node, SearchPaths, TabWidth, Pid)
   	    end;
  
positive.code:     end.
  
  type_ann_file(File, SearchPaths, TabWidth) ->
      {ok, {AnnAST, _Info1}} = refac_util:parse_annotate_file(File, true, SearchPaths),
      TestFrameWorkUsed = refac_util:test_framework_used(File),
      Pid =start_type_env_process(),
      Fs = refac_syntax:form_list_elements(AnnAST),
      Funs = sorted_funs(File),
      Funs1 = lists:map(fun({{M,F, A},FunDef}) ->
  			      {{M, F, A},do_type_ann(File, FunDef, TestFrameWorkUsed, SearchPaths, TabWidth, Pid)} end, Funs), 
      Fs1 = lists:map(fun(Form) ->
  
negative.code:     Args = refac_syntax:application_arguments(Node),
      Arity = length(Args),
      case refac_syntax:type(Op) of
  	atom ->
  	    As = refac_syntax:get_ann(Op),
  	    {value, {fun_def, {Mod, FunName, Ari, _, _}}}= lists:keysearch(fun_def, 1, As),
  	    Op1 = refac_syntax:add_ann({type, {f_atom, [Mod, FunName, Ari]}}, Op),
  	    refac_util:rewrite(Node, refac_syntax:application(Op1, Args));			       
  	variable ->
  	    Op1 = add_type_info({type, {f_atom, ['_', try_eval(FileName, Op,  SearchPaths, TabWidth, 
  							       fun is_atom/1), Arity]}}, Op, Pid),
  