anchor.diff:  	    true ->
                 %% Check if a record is constructed.
                 Arity = length(Fields),
  -              Records = State2#state.records,
  -              case lookup_record(Records, cerl:atom_val(Tag), Arity) of
  -                error -> {State2, TupleType};
  -                {ok, RecType} ->
  -                  State3 = state__store_conj(TupleType, sub, RecType, State2),
  -                  {State3, TupleType}
  +              case lookup_record(State2, cerl:atom_val(Tag), Arity) of
  +                {error, State3} -> {State3, TupleType};
  +                {ok, RecType, State3} ->
  +                  State4 = state__store_conj(TupleType, sub, RecType, State3),
  +                  {State4, TupleType}
                 end;
   	    false -> {State2, TupleType}
             end;
  
positive.code: 			   mk_constraint(Var, sub, ArgV)]);
  get_bif_constr({erlang, is_record, 3}, Dst, [Var, Tag, Arity] = Args, State) ->
    %% TODO: Revise this to make it precise for Tag and Arity.
    Records = State#state.records,
    ArgFun =
      fun(Map) ->
  	case t_is_any_atom(true, lookup_type(Dst, Map)) of
  
negative.code: %%
  %% ============================================================================
  
  traverse_scc([{M,_,_}=MFA|Left], Codeserver, DefSet, AccState) ->
    TmpState1 = state__set_module(AccState, M),
    Def = dialyzer_codeserver:lookup_mfa_code(MFA, Codeserver),
    DummyLetrec = cerl:c_letrec([Def], cerl:c_atom(foo)),
    TmpState2 = state__new_constraint_context(TmpState1),
    {NewAccState, _} = traverse(DummyLetrec, DefSet, TmpState2),
    traverse_scc(Left, Codeserver, DefSet, NewAccState);
  traverse_scc([], _Codeserver, _DefSet, AccState) ->
    AccState.
  
  traverse(Tree, DefinedVars, State) ->
  