On 13 Jul 2022, at 13:23, John Rose wrote:
…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.
1. identity = B1
2. better VBC (by-default private companion, by-default atomic) = B2
3. full-flat primitive (explicitly public non-atomic companion) = B3n
4. atomic primitive (explicitly public companion, but no tearing) =
B3a
5. internally-flat VBC (private companion, tricky full-flat private
vals)
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 `B = id + val[atomic={yes,no},
access={public,package-private,private}]`. The list above splits
sub-cases for package-private out of case 2 and case 5.
At this rate, any bets on how long it takes to get into the double
digits? :-)