anchor.diff:          {record, FieldList} when is_list(FieldList) ->
               check_record_fields(Value, Type, CheckStack, ParseState);
           reference ->
  -            case is_reference(Value) of
  -                true -> {true, CheckStack};
  -                false -> {false, [not_a_reference | CheckStack]}
  -            end;
  +            check_basic_type(Value, Type, CheckStack, ParseState,
  +                             fun erlang:is_reference/1, no_reference);
           tid ->
               % built-in < R14; otherwise ets:tid()
               inner_check(Value, integer, CheckStack, ParseState);
  
positive.code:                     {false, [{Value, not_same_arity, T} | CheckStack]}
              end;
          false ->
              {false, [{Value, not_a_tuple, T} | CheckStack]}
      end.
  
  check_tuple_iter([], [], _CheckStack, _ParseState, _Count) ->
  
negative.code:           CheckStack, _ParseState) ->
      case is_function(Value) of
          false ->
              {false, [{Value, no_function, Type} | CheckStack]};
          true ->
              {arity, Arity} = erlang:fun_info(Value, arity),
              case Arity =:= length(ParamTypes) of
  