anchor.diff:    #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, State),
  +  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),
  
positive.code:   Contracts3 = orddict:from_list(Contracts2),
    NextLabel = dialyzer_codeserver:get_next_core_label(Codeserver),
    {SuccTypes, PltContracts, NotFixpoint} = 
      find_succ_types_for_scc(SCC_Info, Contracts3, NextLabel, State),
    State1 = insert_into_plt(SuccTypes, State),
    ContrPlt = dialyzer_plt:insert_contract_list(State1#st.plt, PltContracts),
    {State1#st{plt = ContrPlt}, NotFixpoint}.
  
  find_succ_types_for_scc(SCC_Info, Contracts, NextLabel,
  			#st{callgraph = Callgraph, plt = Plt} = State) ->
    %% Assume that the PLT contains the current propagated types
    AllFuns = collect_fun_info([Fun || {_MFA, {_Var, Fun}, _Rec} <- SCC_Info]),
    PropTypes = get_fun_types_from_plt(AllFuns, State),
    FunTypes = dialyzer_typesig:analyze_scc(SCC_Info, NextLabel, 
  					  Callgraph, Plt, PropTypes),
    AllFunSet = sets:from_list([X || {X, _} <- AllFuns]),
  
negative.code:       end
    end.
  
  analyze_scc(SCC, #st{codeserver = Codeserver,
  		     callgraph = Callgraph,
  		     plt = Plt} = State) ->
    SCC_Info = [{MFA, 
  	       dialyzer_codeserver:lookup_mfa_code(MFA, Codeserver),
  	       dialyzer_codeserver:lookup_mod_records(M, Codeserver)}
  