anchor.diff:  	  {State1, Map, t_none(), ArgType0, [{WarnType, C, Msg, Force}|Warns]}
         end;
       {Map2, PatTypes} ->
  +      %% Try to bind the argument. Will only succeed if
  +      %% it is a simple structured term.
         Map3 =
  -	case Arg =:= ?no_arg of
  -	  true -> Map2;
  -	  false ->
  -	    %% Try to bind the argument. Will only succeed if
  -	    %% it is a simple structured term.
  -	    case bind_pat_vars_reverse([Arg], [t_product(PatTypes)],
  -				       [], Map2, State1) of
  -	      {error, _, _, _, _} -> Map2;
  -	      {NewMap, _} -> NewMap
  -	    end
  +        case bind_pat_vars_reverse([Arg], [t_product(PatTypes)],
  +                                   [], Map2, State1) of
  +          {error, _, _, _, _} -> Map2;
  +          {NewMap, _} -> NewMap
   	end,
  -      NewArgType =
  -	case Arg =:= ?no_arg of
  -	  true -> ArgType0;
  -	  false ->
  -	    GenType = dialyzer_typesig:get_safe_underapprox(Pats, Guard),
  -	    t_subtract(t_product(t_to_tlist(ArgType0)), GenType)
  -	end,
  +      GenType = dialyzer_typesig:get_safe_underapprox(Pats, Guard),
  +      NewArgType = t_subtract(t_product(t_to_tlist(ArgType0)), GenType),
         case bind_guard(Guard, Map3, State1) of
   	{error, Reason} ->
   	  ?debug("Failed guard: ~ts\n",
  
positive.code: enter_type_lists([], [], Map) ->
    Map.
  
  enter_type_list([{Key, Val}|Left], Map) ->
    Map1 = enter_type(Key, Val, Map),
    enter_type_list(Left, Map1);
  enter_type_list([], Map) ->
    Map.
  
  enter_type(Key, Val, MS) ->
    case cerl:is_literal(Key) of
      true -> MS;
  
negative.code: 
  %%----------------------------------------
  
  handle_try(Tree, Map, State) ->
    Arg = cerl:try_arg(Tree),
    EVars = cerl:try_evars(Tree),
  