<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div><br></div><div><br></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><b>From: </b>"Brian Goetz" <brian.goetz@oracle.com><br><b>To: </b>"Remi Forax" <forax@univ-mlv.fr><br><b>Cc: </b>"Viktor Klang" <viktor.klang@oracle.com>, "amber-spec-experts" <amber-spec-experts@openjdk.java.net><br><b>Sent: </b>Tuesday, January 20, 2026 4:28:14 PM<br><b>Subject: </b>Re: Data Oriented Programming, Beyond Records<br></blockquote></div><div data-marker="__QUOTED_TEXT__"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><br>
<br>
<blockquote cite="mid:476261784.20721726.1768897040954.JavaMail.zimbra@univ-eiffel.fr">
<div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000">
<div>
<blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;">
<blockquote cite="mid:1884486700.20372636.1768848050872.JavaMail.zimbra@univ-eiffel.fr">
<div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000">
<div>
<div>The modifier "component" is too close to the
"property" modifier I wanted to include years ago,
it's just to sugary for its own good.</div>
</div>
</div>
</blockquote>
<br>
You know the rule; mention syntax and you forfeit the right
to more substantial comments....</blockquote>
<div><br>
</div>
<div>I'm talking about the semantics, especially the fact that
equals/hashCode and toString() are derived from.</div>
</div>
</div>
</blockquote>
<br>
Except that equals/hashCode have nothing to do with the "component"
modifier _at all_. They are derived from the _state description_,
in terms of the _accessors_, whose existence is implied directly by
the _state description_. </blockquote><div><br></div><div>I do not think you can do that, because it means that a record is not a carrier class.</div><div><br data-mce-bogus="1"></div><div>Do you agree that equals() and hashCode() of a record are not derived from the accessors ?</div><div><br data-mce-bogus="1"></div><div>regards,</div><div>Rémi</div><div><br></div></div></div></body></html>