<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body><div style="font-family: sans-serif;"><div class="markdown" style="white-space: normal;">
<p dir="auto">On 13 Jul 2022, at 13:23, John Rose wrote:</p>
<blockquote style="margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777777; color: #777777;">
<p dir="auto">…The surprising outcome of this is we now have (by my count) five buckets.  And I don’t think we mind, because they are all about encapsulation choices.</p>
<ol>
<li>identity = B1</li>
<li>better VBC (by-default private companion, by-default atomic) = B2</li>
<li>full-flat primitive (explicitly public non-atomic companion) = B3n</li>
<li>atomic primitive (explicitly public companion, but no tearing) = B3a</li>
<li>internally-flat VBC (private companion, tricky full-flat private vals)</li>
</ol>
</blockquote>
<p dir="auto">P.S. At a full count there are seven buckets, as I said in the meeting, since a “privatized” companion type can be either package-private (aka. default access) or fully private (nestmate access only).  So we have <code style="margin: 0; padding: 0 0.4em; border-radius: 3px; background-color: #F7F7F7;">B = id + val[atomic={yes,no}, access={public,package-private,private}]</code>.  The list above splits sub-cases for package-private out of case 2 and case 5.</p>
<p dir="auto">At this rate, any bets on how long it takes to get into the double digits? :-)</p>

</div></div></body>

</html>