anchor.diff:  	    SyntaxTree = refac_recomment:recomment_forms(Forms, Comments),
   	    Info = refac_syntax_lib:analyze_forms(SyntaxTree),
   	    Info2 = merge_module_info(Info0, Info),
  -	    AnnAST = annotate_bindings(FName, SyntaxTree, Info2, Ms, TabWidth),
  +	    AnnAST0 = annotate_bindings(FName, SyntaxTree, Info2, Ms, TabWidth),
  +	    AnnAST= refac_type_annotation:type_ann_ast(FName, Info2, AnnAST0, SearchPaths, TabWidth),
   	    {ok, {AnnAST, Info2}};
   	{error, Reason} -> erlang:error(Reason)
       end;     
  
positive.code:       -> {ok, {syntaxTree(), moduleInfo()}}).
  parse_annotate_file(FName, ByPassPreP, SearchPaths, TabWidth) ->
      FileFormat =file_format(FName),     
      case whereis(wrangler_ast_server) of 
  	undefined ->        %% this should not happen with Wrangler + Emacs.
  	    ?wrangler_io("wrangler_ast_aserver is not defined\n",[]),
  	    parse_annotate_file_1(FName, ByPassPreP, SearchPaths, TabWidth, FileFormat);
  	_ ->
  	    wrangler_ast_server:get_ast({FName, ByPassPreP, SearchPaths, TabWidth, FileFormat})
      end.
      
  
  
  -spec(parse_annotate_file_1(FName::filename(), ByPassPreP::boolean(), SearchPaths::[dir()], integer(), atom())
  
negative.code: %% element of the tuple being the module name, and the second element 
  %% binding the directory name of the file to which the module belongs.
  
  -spec(get_modules_by_file(Files::[filename()]) -> [{atom(), dir()}]).
  get_modules_by_file(Files) ->
      get_modules_by_file(Files, []).
  
  get_modules_by_file([File | Left], Acc) ->
      BaseName = filename:basename(File, ".erl"),
      Dir = filename:dirname(File),
      get_modules_by_file(Left, [{list_to_atom(BaseName), Dir} | Acc]);
  get_modules_by_file([], Acc) -> lists:reverse(Acc).
  
  
  