anchor.diff:  	 cerl:atom_val(cerl:call_name(Guard)),
   	 cerl:call_arity(Guard)},
     case MFA of
  -    {erlang, F, 1} when F =:= is_atom; F =:= is_boolean;
  -			F =:= is_binary; F =:= is_bitstring;
  -			F =:= is_float; F =:= is_function;
  -			F =:= is_integer; F =:= is_list; F =:= is_map;
  -			F =:= is_number; F =:= is_pid; F =:= is_port;
  -			F =:= is_reference; F =:= is_tuple ->
  -      handle_guard_type_test(Guard, F, Map, Env, Eval, State);
       {erlang, is_function, 2} ->
         handle_guard_is_function(Guard, Map, Env, Eval, State);
  -    MFA when (MFA =:= {erlang, internal_is_record, 3}) or
  -	     (MFA =:= {erlang, is_record, 3}) ->
  +    {erlang, F, 3} when F =:= internal_is_record; F =:= is_record ->
         handle_guard_is_record(Guard, Map, Env, Eval, State);
       {erlang, '=:=', 2} ->
         handle_guard_eqeq(Guard, Map, Env, Eval, State);
  
positive.code:       end
    end.
  
  handle_guard_type_test(Guard, F, Map, Env, Eval, State) ->
    [Arg] = cerl:call_args(Guard),
    {Map1, ArgType} = bind_guard(Arg, Map, Env, dont_know, State),
    case bind_type_test(Eval, F, ArgType, State) of
      error ->
        ?debug("Type test: ~w failed\n", [F]),
        signal_guard_fail(Eval, Guard, [ArgType], State);
  
negative.code:       {enter_type(Arg, NewArgType, Map1), Ret}
    end.
  
  bind_type_test(Eval, Type, ArgType, State) ->
    case Eval of
      pos ->
        Inf = t_inf(Type, ArgType, State#state.opaques),
  