anchor.diff:  
   -module(refac_module_graph). 
   
  --export([module_graph/1, get_called_mods/2, module_graph_to_dot/4, module_subgraph_to_dot/4]). 
  +-export([module_graph/1, get_called_mods/2, module_graph_to_dot/4,
  +	 module_subgraph_to_dot/4, scc_graph_to_dot/3]). 
   
   -include("../include/wrangler.hrl").
   
  
positive.code:     ModNames = [M || {M, _} <- refac_util:get_modules_by_file(Files)],
      [{{Mod, Dir},analyze_mod_with_called_funs({Mod, Dir}, ModNames, SearchPaths)}
       || {Mod, Dir}<-ModDirs].
     
  
  analyze_mod_with_called_funs({Mod, Dir}, ModNames, SearchPaths) ->
      File = filename:join(Dir, atom_to_list(Mod) ++ ".erl"),
      {ok, {AnnAST, Info}} = refac_util:parse_annotate_file(File, true, SearchPaths),
  
negative.code:     ModCallerCallees = create_caller_callee_graph_with_called_funs(SearchPaths),
      MG = digraph:new(),
      add_edges(ModCallerCallees,NotCareMods,  MG),
      Sccs = digraph_utils:strong_components(MG),
      Sccs1 = [Scc||Scc<-Sccs, length(Scc)>1],
      to_dot(MG,DotFile, WithLabel, Sccs1, false),
      digraph:delete(MG).
  
  -spec (scc_graph_to_dot/3::(filename(), [filename()|dir()], boolean()) ->true). 			  
  scc_graph_to_dot(OutFile, SearchPaths, WithLabel) -> 
      DotFile = filename:rootname(OutFile)++".dot",
      ModCallerCallees = create_caller_callee_graph_with_called_funs(SearchPaths),
      MG = digraph:new(),
      add_edges(ModCallerCallees,[],  MG),
      Sccs = digraph_utils:strong_components(MG),
      Sccs1 = [Scc||Scc<-Sccs, length(Scc)>1],
      to_dot(MG,DotFile, WithLabel, Sccs1, true),
      digraph:delete(MG).
  
  
  add_edges([], _NotCareMods, MG) ->
      MG;
  