anchor.diff:  	{error, Reason} -> {error, Reason}
       end.
   
  +
  +%%@spec analyze_free_vars(SyntaxTree::syntaxTree()) ->ok|{error, string()} 
  +%%@doc Check whether an abstract syntax phrase contains any free variables.
   analyze_free_vars(SyntaxTree) ->
       Ann = refac_syntax:get_ann(SyntaxTree),
       case lists:keysearch(free, 1, Ann) of
  
positive.code: 
  
  %% =====================================================================
  %% @spec get_modules_by_file(Files::[filename()]) -> [{atom(), dirname()}]
  %% @doc The a list of files to a list of two-element tuples, with the first 
  %% element of the tuple being the module name, and the second element 
  %% binding the directory name of the file to which the module belongs.
  
negative.code: 	 get_env_vars/1, get_bound_vars/1, get_free_vars/1, 
           get_client_files/2, expand_files/2, get_modules_by_file/1,
           reset_attrs/1, update_ann/2,
           parse_annotate_file/3,tokenize/1, write_refactored_files/1,
           build_lib_side_effect_tab/1, build_local_side_effect_tab/2,
  	 build_call_graph/1, has_side_effect/3,
           callback_funs/1,auto_imported_bifs/0]).
  
  -export([analyze_free_vars/1, build_call_graph/2]).
  
  -export([update_var_define_locations/1]).
  
  