<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
In the worst case, when I don't know if I have a string or an URLUtils object, I just ensure that at least one member of the equality operator is stringified—and, most importantly, that it is evident from reading my code that one member is stringified:<br>

<br>
    a.href == url<br>
    String(whatever) == url<br></blockquote><div><br></div><div>Is an equality operator which requires one to remember such details a good, dependable equality operator?  Does it really even express a meaningful concept of "equality"?</div>
<div><br></div><div>Attaching more nuance on top of "==" via overloading seems like it will make things worse, not better.</div><div><br></div><div>Brendan, can you provide a value class example which includes a user-defined "=="?  I'd like to see it in context.</div>
<div><br></div><div><br></div></div></div></div>