anchor.diff:      [{record_field,Line,{atom,La,A},Val1}|record_defs(Is)];
   record_defs([{record_field,Line,{atom,La,A}}|Is]) ->
       [{record_field,Line,{atom,La,A}}|record_defs(Is)];
  +record_defs([{typed_record_field,{record_field,Line,{atom,La,A},Val0},Type}|
  +             Is]) ->
  +    Val1 = expr(Val0),
  +    Type1 = type(Type),
  +    [{typed_record_field,{record_field,Line,{atom,La,A},Val1},Type1}|
  +     record_defs(Is)];
  +record_defs([{typed_record_field,{record_field,Line,{atom,La,A}},Type}|Is]) ->
  +    Type1 = type(Type),
  +    [{typed_record_field,{record_field,Line,{atom,La,A}},Type1}|
  +     record_defs(Is)];
   record_defs([]) -> [].
   
   %% -type function(atom(), integer(), [Clause]) -> {atom(),integer(),[Clause]}.
  
positive.code: 
  %% -type guard([GuardTest]) -> [GuardTest].
  
  guard([G0|Gs]) when list(G0) ->
      [guard0(G0) | guard(Gs)];
  guard(L) ->
      guard0(L).
  
negative.code:     {attribute,Line,record,{Name,Defs1}};
  form({attribute,Line,asm,{function,N,A,Code}}) ->
      {attribute,Line,asm,{function,N,A,Code}};
  form({attribute,Line,type,{N,T,Vs}}) ->
      T1 = type(T),
      Vs1 = variable_list(Vs),
      {attribute,Line,type,{N,T1,Vs1}};
  form({attribute,Line,opaque,{N,T,Vs}}) ->
      T1 = type(T),
      Vs1 = variable_list(Vs),
      {attribute,Line,opaque,{N,T1,Vs1}};
  form({attribute,Line,spec,{{N,A},FTs}}) ->
      FTs1 = function_type_list(FTs),
      {attribute,Line,spec,{{N,A},FTs1}};
  form({attribute,Line,spec,{{M,N,A},FTs}}) ->
      FTs1 = function_type_list(FTs),
      {attribute,Line,spec,{{M,N,A},FTs1}};
  form({attribute,Line,callback,{{N,A},FTs}}) ->
      FTs1 = function_type_list(FTs),
      {attribute,Line,callback,{{N,A},FTs1}};
  form({attribute,Line,Attr,Val}) ->		%The general attribute.
      {attribute,Line,Attr,Val};
  form({function,Line,Name0,Arity0,Clauses0}) ->
      {Name,Arity,Clauses} = function(Name0, Arity0, Clauses0),
      {function,Line,Name,Arity,Clauses};
  %% Extra forms from the parser.
  form({error,E}) -> {error,E};
  form({warning,W}) -> {warning,W};
  