anchor.diff:  -spec solve_unknown_record_types([field_constraint()]) -> true | [tuple()].
   solve_unknown_record_types(Unknown) ->
       UVars = lists:usort([UVar || #field_constraint{record_t = UVar = {uvar, _, _}} <- Unknown]),
  -    Solutions = [solve_for_uvar(UVar, [Field || #field_constraint{record_t = U, field = Field} <- Unknown,
  -                                                U == UVar])
  +    Solutions = [solve_for_uvar(UVar, [{Kind, Field}
  +                                        || #field_constraint{record_t = U, field = Field, kind = Kind} <- Unknown,
  +                                           U == UVar])
                    || UVar <- UVars],
       case lists:member(true, Solutions) of
           true  -> true;
  
positive.code:                       end
                        || RecName <- Candidates],
      Solutions = lists:sort([RecName || {RecName, RecFields} <- TypesAndFields,
                                         UniqueFields -- RecFields == []]),
      case Solutions of
          [] ->
              {no_records_with_all_fields, Fields};
  
negative.code:                              C
                       end;
                  false ->
                      type_error({not_a_record_type, RecId, When}),
                      not_solved
               end
           end
           || C <- DerefConstraints,
  