anchor.diff:  %%    Attr :: 'type' | 'opaque'
   %% Checks that a type definition is valid.
   
  -type_def(_Attr, _Line, {record, _RecName}, Fields, [], St0) ->
  -    %% The record field names and such are checked in the record format.
  -    %% We only need to check the types.
  -    Types = [T || {typed_record_field, _, T} <- Fields],
  -    check_type({type, nowarn(), product, Types}, St0);
   type_def(Attr, Line, TypeName, ProtoType, Args, St0) ->
       TypeDefs = St0#lint.types,
       Arity = length(Args),
  
positive.code: 			      [] -> St; % exclude records with no fields
  			      [_|_] -> add_warning(L, {untyped_record, N}, St)
  			  end
  		  end, St0, RecNames -- TRecNames);
  	false ->
  	    St0
      end.
  
negative.code: 		[{FA,L} || {function,L,F,A,_} <- Forms,
  			   not lists:member(FA = {F,A}, Specs)];
  	    exported ->
  		Exps0 = gb_sets:to_list(St0#lint.exports) -- pseudolocals(),
                  Exps = Exps0 -- Specs,
  		[{FA,L} || {function,L,F,A,_} <- Forms,
  			   member(FA = {F,A}, Exps)]
  	end,
      foldl(fun ({FA,L}, St) ->
  		  add_warning(L, {missing_spec,FA}, St)
  