<div dir="ltr"><div dir="ltr">On Wed, Aug 3, 2022 at 10:53 AM Maurizio Cimadamore <<a href="mailto:maurizio.cimadamore@oracle.com">maurizio.cimadamore@oracle.com</a>> wrote:<br></div><div dir="ltr"><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 27/07/2022 23:25, Dan Smith wrote:<br>
> I'm not*totally*  sure I grasp all the differences, but here are a couple of observations that seem to support Model 2:<br>
<br>
I'm not sure I grasp the differences between model 1 and 2 either.<br></blockquote><div><br></div><div>This is probably because they are conceptual-model differences only -- differences in framing, influencing how we talk about things but usually leading to the same outcomes (because we rarely weigh "fits a better conceptual model" as a sufficient reason to <i>choose</i> that behavior; the model is usually just playing catch-up).</div><div><br></div><div>For example:</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">In the same way, universal type-variables cannot answer the question of <br>
"are you a ref or a val" (in the same way in which today's type variable <br>
cannot answer the question of: are you an Integer or a Double).<br></blockquote><div><br></div><div>This would be Model 1 framing, whereas Model 2 might say "it's neither; it is itself, a type variable; the relevant question is what types it is *substitutable* to, or perhaps what *other* types its instances might have".</div><div><br></div><div>It might be cleaner to think "T is preserving its substitutability for either a ref or val type" than either "T might *be* either a ref or val type" or "T is a special 'ref-or-val' type".</div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div style="line-height:1.5em;padding-top:10px;margin-top:10px;color:rgb(85,85,85);font-family:sans-serif"><span style="border-width:2px 0px 0px;border-style:solid;border-color:rgb(213,15,37);padding-top:2px;margin-top:2px">Kevin Bourrillion |</span><span style="border-width:2px 0px 0px;border-style:solid;border-color:rgb(51,105,232);padding-top:2px;margin-top:2px"> Java Librarian |</span><span style="border-width:2px 0px 0px;border-style:solid;border-color:rgb(0,153,57);padding-top:2px;margin-top:2px"> Google, Inc. |</span><span style="border-width:2px 0px 0px;border-style:solid;border-color:rgb(238,178,17);padding-top:2px;margin-top:2px"> <a href="mailto:kevinb@google.com" target="_blank">kevinb@google.com</a></span></div></div></div></div></div></div></div></div>