<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">Hi Tobi,<div><br></div><div>    let me try again (<a href="https://youtu.be/Cj8n4MfhjUc">https://youtu.be/Cj8n4MfhjUc</a>)…</div><div><div dir="ltr"><br><blockquote type="cite">On Nov 23, 2022, at 12:23 PM, Tobias Pape <Das.Linux@gmx.de> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><span>Yet, nil is only seldom a good domain object.</span><br></div></blockquote><div><br></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgb(255, 255, 255);">Precisely. Being disjoint from any domain it is the ideal “I am not a domain object” marker. So when one wants a variable to range over a domain and the singleton “not a member of the domain” nil is a great choice.  And that’s exactly how I use it below.</span></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgb(255, 255, 255);"><br></span></div><div><span style="-webkit-text-size-adjust: auto; background-color: rgb(255, 255, 255);">There is another excellent marker of a non-domain object, and that is a </span><span style="-webkit-text-size-adjust: auto; background-color: rgb(255, 255, 255);">newly instantiated</span><span style="-webkit-text-size-adjust: auto; background-color: rgb(255, 255, 255);"> object. That object is known to not be any other object, since objects are unique.  So if code is searching for something (eg applying a block to every literal in the system), having the newly instantiated object that implements the search use itself as the “I’m not in the domain of all pre-existing objects” is a sensible choice.  This is the pattern InstructionStream uses when scanning for selectors.</span></div><br><blockquote type="cite"><div dir="ltr"><span>-t</span><br><span></span><br><blockquote type="cite"><span>On 23. Nov 2022, at 19:34, tim Rowledge <tim@rowledge.org> wrote:</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>I won't quote it all again but what Eliot wrote is important. There are good solid reasons why Smalltalk has a rigorously defined UndefinedObject. We demand rigorously defined areas of doubt and uncertainty!</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>tim</span></blockquote></div></blockquote><br></div><div><br></div><div>_,,,^..^,,,_ (phone)</div></body></html>