anchor.diff:  	       subst_tvars(lists:zip(Formals, Args), Fields))};
   	_ ->
   	    %% Not a record type, or ill-formed record type.
  -	    Type
  +	    {app_t, Ann, Id, unfold_record_types_in_type(Args)}
       end;
   unfold_record_types_in_type(Type={id, _, RecName}) ->
       %% Like the case above, but for record types without parameters.
  
positive.code:     {arg, Attr, Id, unfold_record_types_in_type(Type)};
  unfold_record_types({type_sig, Args, Ret}) ->
      {type_sig, unfold_record_types_in_type(Args), unfold_record_types_in_type(Ret)};
  unfold_record_types(T) when is_tuple(T) ->
      list_to_tuple(unfold_record_types(tuple_to_list(T)));
  unfold_record_types([H|T]) ->
  
negative.code: unfold_record_types(X) ->
      X.
  
  unfold_record_types_in_type({app_t, Ann, Id = {id, _, RecName}, Args}) ->
      case ets:lookup(record_types, RecName) of
  	[{RecName, Formals, Fields}] when length(Formals) == length(Args) ->
  	    {record_t,
  