<div dir="ltr"><div>Hey everyone,<div><br></div><div>[I assume Google will put forth a replacement representative at some point, but either way I've joined this group as an individual member. <a href="mailto:kevinb9n@gmail.com">kevinb9n@gmail.com</a> is how to reach me now!]</div><div><br></div><div>Here's a response to Dan's <a href="https://mail.openjdk.org/pipermail/valhalla-spec-experts/2023-December/002402.html">December thread</a> which I can't reply to from this other account.</div><div><br></div><div>So as far as I can tell I think this dovetails perfectly with what I've always wanted, which is the "identity is just an attribute" model. I like pretty much everything about it. Under that idea, identity is absent at the root of the hierarchy, can be added by any subtype, then is inherited by everything below that. Any type that wants to be mutable, lockable, etc. would have to flip that identity switch on.</div><div><br></div><div>So I don't see that there needs to be any difference between "value" and "indeterminate". Both are just "doesn't have the identity attribute".</div><div><br></div><div>I feel like there must have been some reason we thought that wouldn't pan out, but I don't remember. In some sense, adding the "attribute" of identity also <i>removes</i> a capability at the same time (the capability of being copyable and collapsible at the VM's whims), and at one point I thought that sunk the whole model. But that's not a <i>client</i>-facing capability, and I think maybe that excuses it.</div><div><br></div><div>So anyway, I <i>think</i> the only adjustment to my preferred dream model that I recognize in Dan's email is "interfaces don't get to add this identity attribute", which okay, no great loss I suppose.</div><div><br></div></div><div>Of course, I don't remember what past discussions I don't remember, so please let me know what I'm missing here.</div><div><br></div></div>