<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body dir="auto">
You’re getting ahead of the story ;)
<div><br>
</div>
<div>Dan has worked out much of the generics work, but we are trying to stay focused on the class and object model first.  But the issues you raise are handled.  <br>
<br>
<div dir="ltr">Sent from my MacBook Wheel</div>
<div dir="ltr"><br>
<blockquote type="cite">On Jul 15, 2022, at 9:48 AM, Remi Forax <forax@univ-mlv.fr> wrote:<br>
<br>
</blockquote>
</div>
<blockquote type="cite">
<div dir="ltr">
<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>"John Rose" <john.r.rose@oracle.com><br>
<b>To: </b>"Brian Goetz" <brian.goetz@oracle.com><br>
<b>Cc: </b>"daniel smith" <daniel.smith@oracle.com>, "valhalla-spec-experts" <valhalla-spec-experts@openjdk.java.net><br>
<b>Sent: </b>Wednesday, July 13, 2022 10:23:50 PM<br>
<b>Subject: </b>There are five buckets now<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;">
<div style="font-family: sans-serif;">
<div class="markdown" style="white-space: normal;">
<p dir="auto">FTR, I’m really happy with the user model as of this point.</p>
<p dir="auto">The things I like best about it are:</p>
<ul>
</ul>
</div>
</div>
</blockquote>
<div><br data-mce-bogus="1">
</div>
<div>[...]<br data-mce-bogus="1">
</div>
<div><br data-mce-bogus="1">
</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;">
<div style="font-family: sans-serif;">
<div class="markdown" style="white-space: normal;">
<ul>
<li><code style="margin: 0; padding: 0 0.4em; border-radius: 3px; background-color: #F7F7F7;">Object::getClass</code> returns a predictable ref-mirror (I always wanted that)</li></ul>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>so we have to tweak the return type of getClass() to it returns something like Class<? extends Erasure[T.ref]> and also C.val.class has to be typed Class<C>.</div>
<div><br data-mce-bogus="1">
</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;">
<div style="font-family: sans-serif;">
<div class="markdown" style="white-space: normal;">
<p dir="auto"><br data-mce-bogus="1">
</p>
<p dir="auto">— John</p>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Rémi<br data-mce-bogus="1">
</div>
<div><br data-mce-bogus="1">
</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;">
<div style="font-family: sans-serif;">
<div class="markdown" style="white-space: normal;">
<p dir="auto">On 13 Jun 2022, at 16:04, Brian Goetz wrote:</p>
<blockquote style="margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777777; color: #777777;">
<p dir="auto">I've done a little more shaking of this tree.  It involves keeping the notion that the non-identity buckets differ only in the treatment of their val projection, but makes a further normalization that enables the buckets to mostly collapse away.</p>
<p dir="auto">"value class X" means:</p>
<p dir="auto"> - Instances are identity-free<br>
 - There are two types, X.ref (reference, nullable) and X.val (direct, non-nullable)<br>
 - Reference types are atomic, as always<br>
 - X is an alias for X.ref<br>
…</p>
</blockquote>
</div>
</div>
<br>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</body>
</html>