<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Precisely so.  Records form the sweet spot where construction
    protocol, deconstruction protocol, equality and hashCode protocol,
    and representation are identical.  The probability that you would
    also want to use the state vector as a dictionary-order comparator
    is very, very small.  <br>
    <br>
    (Please, let's not tangent into redesigning records right now.) 
    Bringing this back to CMB, for a record, we can add Comparable with
    CMB nicely:<br>
    <br>
        record Person(String firstName, String lastName, ShoeSize
    shoeSize) <br>
                implements Comparable {<br>
            private static (lazy) final Comparator<Person> COMP =
    Comparator.of(::lastName, ::firstName);<br>
    <br>
            public int compareTo(Person other) = COMP::compare;<br>
        }<br>
    <br>
    Sure, we could also write:<br>
    <br>
            public int compareTo(Person other) {<br>
                return COMP.compare(this, other);<br>
            }<br>
    <br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 10/9/2018 3:27 PM, Kevin Bourrillion
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAGKkBkvjg5zsiRLL5+_cEnC57SeYMT8wC5639fdNem4wTz22cg@mail.gmail.com">
      <blockquote class="gmail_quote" style="margin:0 0 0
        .8ex;border-left:1px #ccc solid;padding-left:1ex">
        <div
style="font-family:arial,helvetica,sans-serif;font-size:12pt;color:#000000">
          <div> (that the reason why there is no support of Comparable
            on a record, no ?)<br>
          </div>
        </div>
      </blockquote>
      <div><br>
      </div>
      <div>I don't think so. I think the reason is that the default
        behavior we'd have to use is regularly enough not what the user
        wants. And you don't want program behavior to change when fields
        are reordered in the source file. imho, the Comparator
        construction methods added in 8 are such an ideal way to
        configure comparison behavior that a language feature really has
        no way to beat them.</div>
      <div><br>
      </div>
    </blockquote>
    <br>
    <br>
  </body>
</html>