anchor.diff:  	eq ->
   	  case solve_subtype(Lhs, Inf, Map, Opaques) of
   	    error -> error;
  -	    {ok, Map1} -> solve_subtype(Rhs, Inf, Map1, Opaques)
  +	    {ok, {Map1, U1}} ->
  +              case solve_subtype(Rhs, Inf, Map1, Opaques) of
  +                error -> error;
  +                {ok, {Map2, U2}} -> {ok, {Map2, lists:umerge(U1, U2)}}
  +              end
   	  end
         end
     end.
  
positive.code:       false -> {false, State};
        SplitSCC -> {SplitSCC, minimize_state(State)}
      end,
    solve_scc(SCC, Parallel, dict:new(), NewState, false).
  
  solve_fun(Fun, FunMap, State) ->
    Cs = state__get_cs(Fun, State),
    Deps = get_deps(Cs),
    Ref = mk_constraint_ref(Fun, Deps),
    %% Note that functions are always considered to succeed.
    {ok, _MapDict, NewMap} = solve_ref_or_list(Ref, FunMap, dict:new(), State),
    NewType = lookup_type(Fun, NewMap),
    NewFunMap1 = case state__get_rec_var(Fun, State) of
  		 error -> FunMap;
  
negative.code: 
  join_chars([], _Sep) ->
    [];
  join_chars([H|T], Sep) ->
    [H|[[Sep,X] || X <- T]].
  
  debug_lookup_name(Var) ->
    case dict:find(t_var_name(Var), get(dialyzer_typesig_map)) of
  