anchor.diff:         ordsets:from_list([Fun || {Fun, _Arity} <- AllFuns])}
     end.
   
  -get_fun_types_from_plt(FunList, State) ->
  -  get_fun_types_from_plt(FunList, State, dict:new()).
  -
  -get_fun_types_from_plt([{FunLabel, Arity}|Left], State, Map) ->
  -  Type = lookup_fun_type(FunLabel, Arity, State),
  -  get_fun_types_from_plt(Left, State, dict:store(FunLabel, Type, Map));
  -get_fun_types_from_plt([], _State, Map) ->
  +get_fun_types_from_plt(FunList, Callgraph, Plt) ->
  +  get_fun_types_from_plt(FunList, Callgraph, Plt, dict:new()).
  +
  +get_fun_types_from_plt([{FunLabel, Arity}|Left], Callgraph, Plt, Map) ->
  +  Type = lookup_fun_type(FunLabel, Arity, Callgraph, Plt),
  +  get_fun_types_from_plt(Left, Callgraph, Plt, dict:store(FunLabel, Type, Map));
  +get_fun_types_from_plt([], _Callgraph, _Plt, Map) ->
     Map.
   
   collect_fun_info(Trees) ->
  
positive.code: collect_fun_info([], List) ->
    List.
  
  lookup_fun_type(Label, Arity, #st{callgraph = Callgraph, plt = Plt}) ->
    ID = lookup_name(Label, Callgraph),
    case dialyzer_plt:lookup(Plt, ID) of
      none -> erl_types:t_fun(Arity, erl_types:t_any());
  
negative.code:   #st{callgraph = Callgraph, codeserver = CodeServer, plt = PLT} = State,
    ModCode = dialyzer_codeserver:lookup_mod_code(M, CodeServer),
    AllFuns = collect_fun_info([ModCode]),
    FunTypes = get_fun_types_from_plt(AllFuns, Callgraph, PLT),
    Records = dialyzer_codeserver:lookup_mod_records(M, CodeServer),
    {NewFunTypes, RaceCode, PublicTables, NamedTables} =
      dialyzer_dataflow:get_fun_types(ModCode, PLT, Callgraph, Records),
  