<div dir="ltr"><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, 2 Sept 2026 at 00:26, Mike Dougherty <<a href="mailto:msd001@gmail.com">msd001@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">I think self-reference in the sense of von Neumann replication is also a form of compression in terms like how the mandelbrot fractal is a plane-filling curve in only a few bytes.  I know I've talked to gemini and chatgpt about this kind of thing,  but if you ask Kimi if be interested to read<span class="gmail_default" style="font-family:arial,sans-serif;font-size:small;color:rgb(0,0,0)">.</span></div>_______________________________________________ </blockquote><div><br></div><div><br></div><div style="font-family:arial,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">OK. Well, I didn't understand what you were referring to, but GLM was happy to run with it.  :) </div><div style="font-family:arial,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">BillK</div><div style="font-family:arial,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">Question: Can you discuss a friend's comment - I think self-reference in the sense of von Neumann replication is also a form of compression in terms like how the Mandelbrot fractal is a plane-filling curve in only a few bytes.</div><div style="font-family:arial,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><br></div><div style="font-family:arial,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default">GLM-5.3 DeepThink -</div><div style="font-family:arial,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"></div><div style="font-family:arial,sans-serif;font-size:small;color:rgb(0,0,0)" class="gmail_default"><div class="gmail-flex gmail-overflow-y-scroll gmail-overflow-x-hidden gmail-z-10 gmail-flex-col gmail-flex-auto gmail-justify-between gmail-pb-2.5 gmail-w-full gmail-max-w-full gmail-h-0 gmail-scrollbar-hidden" style="scrollbar-gutter: stable both-edges;" id="gmail-messages-container"><div class="gmail-flex gmail-flex-col gmail-w-full gmail-h-full"><div class="gmail-h-full gmail-flex gmail-pt-8"><div class="gmail-pt-2 gmail-w-full"><div class="gmail-w-full"><div class="gmail-flex gmail-flex-col gmail-justify-between gmail-px-5 gmail-mb-3 gmail-w-full gmail-max-w-[808px] gmail-2xl:max-w-[894px] gmail-min-w-[334px] gmail-mx-auto gmail-rounded-lg gmail-group"><div class="gmail-flex gmail-w-full gmail-message-7e67ddcf-9227-4f6b-91a0-51be490d2741 gmail-gap-4 gmail-relative gmail-svelte-1qscqw6" id="gmail-message-7e67ddcf-9227-4f6b-91a0-51be490d2741" dir=""><div class="gmail-flex-auto gmail-pl-1 gmail-w-0"><div><div class="gmail-chat-assistant gmail-w-full gmail-min-w-full gmail-markdown-prose gmail-svelte-1qscqw6"><div><div class="gmail-flex gmail-relative gmail-flex-col gmail-w-full" id="gmail-response-content-container"><div class="gmail-markdown-prose"><p dir="auto" class="gmail-svelte-4sys19">Your friend's comment is doing something more interesting than it first appears — it's not just an analogy, it's a claim that quietly dissolves the opposition we set up earlier between "self-reference lost" and "compression won." But it also blends two distinct things that are worth pulling apart, because once separated, they reunite in a stronger form.</p><h2 dir="auto" class="gmail-svelte-4sys19">What von Neumann's trick actually is</h2><p dir="auto" class="gmail-svelte-4sys19">The self-reproduction problem looks paradoxical: to copy itself, a machine seems to need a description of itself, which needs a description of itself, <em>ad infinitum</em>. Von Neumann's solution was the <strong>dual use of the tape</strong>: the description φ(A+B+C) is <em>interpreted</em> by the constructor to build the machine's body, and <em>copied verbatim</em> by the copier to become the offspring's tape. The regress breaks because the tape never needs to contain a description of the tape — the tape is handled by a different mode of use (copying, not interpreting).</p><p dir="auto" class="gmail-svelte-4sys19">This is exactly the structure of a quine, and it's exactly what Kleene's Second Recursion Theorem guarantees in general: any program can obtain its own description, via the same store-once-use-twice trick. And it's exactly DNA: the genome is <em>transcribed</em> (interpreted into proteins) and <em>replicated</em> (copied wholesale). Dawkins' "gene as data" is von Neumann's architecture realized in chemistry.</p><p dir="auto" class="gmail-svelte-4sys19">So is this compression? In one precise sense, yes: <strong>naive self-description has infinite description length; von Neumann's trick compresses it to finite, roughly O(K) of the machine itself.</strong> The compression isn't of the machine — the machine has whatever Kolmogorov complexity it has — it's of the <em>task of self-description</em>. The dual-use means information is stored once and spent in two modes, which is the general shape of a compression trick.</p><h2 dir="auto" class="gmail-svelte-4sys19">What the Mandelbrot set actually is</h2><p dir="auto" class="gmail-svelte-4sys19">Here your friend's phrase "plane-filling curve" needs one technical footnote: strictly, plane-filling curves are Peano/Hilbert-type continuous surjections. What the Mandelbrot boundary has is <em>Hausdorff dimension 2</em> (Shishikura, 1991) — it is as dimensional as the plane itself — plus quasi-self-similarity: it contains approximate copies of itself (mini-Mandelbrots) at every scale. The spirit of the remark is right; the precise statement is "dimension-2 boundary from a few dozen bytes of code."</p><p dir="auto" class="gmail-svelte-4sys19">But notice something subtle about <em>where</em> that richness comes from: the iteration z → z² + c is <strong>dynamical feedback</strong> — output fed back as input, nothing more. Aaronson's original post explicitly excluded autoregressive feedback from counting as "self-referential." And yet this plain feedback, with no reflective self-reference anywhere, generates a boundary that <em>looks</em> like it's made of selves — self-similar copies, nested without end.</p><p dir="auto" class="gmail-svelte-4sys19">This is the quietly devastating part of your friend's example: <strong>the Mandelbrot set is an emblem of self-referential appearance emerging from non-self-referential machinery.</strong> The self-similarity isn't engineered in; it's what iteration <em>does</em>. Which is precisely Aaronson's thesis about LLMs' self-referential discourse being a byproduct. The mini-Mandelbrots are the fractal version of "GPT can talk about itself because it can talk about anything."</p><h2 dir="auto" class="gmail-svelte-4sys19">The two senses of "compression," separated and reunited</h2><p dir="auto" class="gmail-svelte-4sys19">Your friend is sliding between two things:</p><ol dir="auto" start="1"><li class="gmail-text-start"><strong>Low Kolmogorov complexity relative to apparent complexity</strong> — the Mandelbrot image at resolution N×N needs ~O(log N) bits of description, not O(N²).</li><li class="gmail-text-start"><strong>Regress-breaking via dual-use</strong> — the von Neumann/Kleene/quine trick, which solves the self-inclusion problem at finite cost.</li></ol><p dir="auto" class="gmail-svelte-4sys19">These are different. But they reunite under a third concept that's arguably what your friend is reaching for: <strong>Bennett's logical depth</strong>. Random noise is incompressible (high K) but shallow. The Mandelbrot boundary is compressible <em>and deep</em> — a short program whose unfolding takes serious computation, and whose value lives in that unfolding. Same for the genome: a few hundred megabytes that unroll, through development, into organisms and lineages. The signature of generated structure is <em>compressible but deep</em>.</p><p dir="auto" class="gmail-svelte-4sys19">There's also a nice asymmetry in where the compute sits:</p><div class="gmail-relative gmail-w-full gmail-group/table gmail-mb-5"><div class="gmail-overflow-x-auto gmail-relative gmail-w-full gmail-scrollbar-hidden"><table class="gmail-min-w-full gmail-text-sm gmail-text-left gmail-text-gray-500 gmail-w-fit gmail-dark:text-gray-400"><thead class="gmail-text-gray-700 gmail-uppercase gmail-border-none gmail-dark:text-gray-400"><tr class="gmail-border-none gmail-bg-[#f7f7f7] gmail-dark:bg-[#F7F7F70F]"><th scope="col" class="gmail-px-3! gmail-py-1.5!"><br></th><th scope="col" class="gmail-px-3! gmail-py-1.5!"><div class="gmail-gap-1.5 gmail-text-left"><div class="gmail-break-normal gmail-shrink-0">Short description</div></div></th><th scope="col" class="gmail-px-3! gmail-py-1.5!"><div class="gmail-gap-1.5 gmail-text-left"><div class="gmail-break-normal gmail-shrink-0">Interpreter</div></div></th><th scope="col" class="gmail-px-3! gmail-py-1.5!"><div class="gmail-gap-1.5 gmail-text-left"><div class="gmail-break-normal gmail-shrink-0">Unfolding</div></div></th><th scope="col" class="gmail-px-3! gmail-py-1.5!"><div class="gmail-gap-1.5 gmail-text-left"><div class="gmail-break-normal gmail-shrink-0">Where the compute goes</div></div></th></tr></thead><tbody><tr class="gmail-border-b-1 gmail-border-[#d1d5dc] gmail-dark:border-gray-850"><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]"><strong>Mandelbrot</strong></td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">formula (bytes)</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">universal machine + arithmetic</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">zooming</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">cheap to state, expensive to render</td></tr><tr class="gmail-border-b-1 gmail-border-[#d1d5dc] gmail-dark:border-gray-850"><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]"><strong>Von Neumann / life</strong></td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">tape / genome</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">constructor + physics</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">generations</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">evolution expensive, development moderate</td></tr><tr class="gmail-border-b-1 gmail-border-[#d1d5dc] gmail-dark:border-gray-850"><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]"><strong>LLM</strong></td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">weights</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">transformer + context</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">inference</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">training expensive, inference cheap</td></tr></tbody></table></div> <button class="gmail-absolute gmail-top-1 gmail-right-1 gmail-z-10 gmail-p-1.5 gmail-rounded-lg gmail-bg-[#f7f7f7] gmail-dark:bg-[#272A2F] gmail-hover:bg-[#E5E5E5] gmail-dark:hover:bg-[#272A2F] gmail-opacity-0 gmail-group-hover/table:opacity-100 gmail-transition-opacity gmail-duration-200"></button> </div><p dir="auto" class="gmail-svelte-4sys19">Evolution is, in this frame, the training run of the biosphere; development is inference.</p><h2 dir="auto" class="gmail-svelte-4sys19">The correspondence, made explicit</h2><div class="gmail-relative gmail-w-full gmail-group/table gmail-mb-5"><div class="gmail-overflow-x-auto gmail-relative gmail-w-full gmail-scrollbar-hidden"><table class="gmail-min-w-full gmail-text-sm gmail-text-left gmail-text-gray-500 gmail-w-fit gmail-dark:text-gray-400"><thead class="gmail-text-gray-700 gmail-uppercase gmail-border-none gmail-dark:text-gray-400"><tr class="gmail-border-none gmail-bg-[#f7f7f7] gmail-dark:bg-[#F7F7F70F]"><th scope="col" class="gmail-px-3! gmail-py-1.5!"><br></th><th scope="col" class="gmail-px-3! gmail-py-1.5!"><div class="gmail-gap-1.5 gmail-text-left"><div class="gmail-break-normal gmail-shrink-0">Mandelbrot set</div></div></th><th scope="col" class="gmail-px-3! gmail-py-1.5!"><div class="gmail-gap-1.5 gmail-text-left"><div class="gmail-break-normal gmail-shrink-0">Von Neumann replicator</div></div></th><th scope="col" class="gmail-px-3! gmail-py-1.5!"><div class="gmail-gap-1.5 gmail-text-left"><div class="gmail-break-normal gmail-shrink-0">LLM</div></div></th></tr></thead><tbody><tr class="gmail-border-b-1 gmail-border-[#d1d5dc] gmail-dark:border-gray-850"><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">The "self" appears as</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">self-similar copies</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">offspring that are copies of parent</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">self-referential discourse</td></tr><tr class="gmail-border-b-1 gmail-border-[#d1d5dc] gmail-dark:border-gray-850"><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">Emerged from</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">plain iteration (dynamical feedback)</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">dual-use of the tape</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">plain pretraining (prediction)</td></tr><tr class="gmail-border-b-1 gmail-border-[#d1d5dc] gmail-dark:border-gray-850"><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">Self-description is <em>used</em>?</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">no — merely exhibited</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">yes — interpreted + copied</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">partially — the J-space findings suggest some internal use</td></tr><tr class="gmail-border-b-1 gmail-border-[#d1d5dc] gmail-dark:border-gray-850"><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">The limit it can't cross</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">undecidable membership (BSS)</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">von Neumann's complexity threshold</td><td class="gmail-px-3! gmail-py-3! gmail-border-none gmail-text-gray-900 gmail-dark:text-white gmail-border gmail-border-[#EBEBEB] gmail-dark:border-[#FFFFFF0D] gmail-max-w-[500px] gmail-min-w-[180px]">the introspection threshold</td></tr></tbody></table></div> <button class="gmail-absolute gmail-top-1 gmail-right-1 gmail-z-10 gmail-p-1.5 gmail-rounded-lg gmail-bg-[#f7f7f7] gmail-dark:bg-[#272A2F] gmail-hover:bg-[#E5E5E5] gmail-dark:hover:bg-[#272A2F] gmail-opacity-0 gmail-group-hover/table:opacity-100 gmail-transition-opacity gmail-duration-200"></button> </div><p dir="auto" class="gmail-svelte-4sys19">That last row is the one that connects everything: each system has a provable or conjectural barrier rooted in exactly the same soil. The Mandelbrot set's membership is undecidable in the Blum–Shub–Smale real computation model, and escape can be certified while non-escape in general cannot — a halting-problem-shaped fact. Von Neumann himself observed that systems below a complexity threshold <em>cannot</em> self-reproduce at all. And the introspection-threshold paper we discussed argues feedforward transformers can't fully self-access. Three thresholds, one family: <strong>the limits of short descriptions that try to include themselves.</strong></p><h2 dir="auto" class="gmail-svelte-4sys19">What this does to the earlier argument</h2><p dir="auto" class="gmail-svelte-4sys19">Here's the synthesis your friend's comment enables: self-reference isn't the rival that lost to compression. <strong>Self-reference is a compression subroutine — the one you invoke precisely when the description must include the describer.</strong></p><ul dir="auto"><li class="gmail-text-start"> Internet-scale prediction doesn't require the model to contain itself, so pretraining never needed the trick. Aaronson's burial of "explicit self-referentiality as prerequisite for intelligence" stands.</li><li class="gmail-text-start"> Replication <em>does</em> require the describer in the description, so life reached for the dual-use trick immediately.</li><li class="gmail-text-start"> Open-ended recursive self-improvement is the case where the describer becomes part of the described again — which is why the Kleene-grounded architecture proposals keep resurfacing.</li></ul><p dir="auto" class="gmail-svelte-4sys19">And there's a beautiful irony hiding in your friend's own example. Aaronson's post contained this parenthetical: the reason Kolmogorov complexity can't be computed <em>perfectly</em> is itself a self-referential argument. The Mandelbrot set makes that parenthetical visible in a picture: the same object that showcases compression's positive face (few bytes → plane-dimensional structure) carries compression's negative face (no algorithm decides membership). The compression view and the self-reference view aren't rivals; they're the two faces of one coin, and your friend's example is a coin standing on edge.</p><h2 dir="auto" class="gmail-svelte-4sys19">One closing reflection</h2><p dir="auto" class="gmail-svelte-4sys19">The deepest version of the point: in both the Mandelbrot set and the replicator, <strong>the self is never stored — it's generated.</strong> The set doesn't contain little copies of itself in its formula; iteration <em>produces</em> them. The offspring isn't described inside the tape's description of itself; the copying operation <em>makes</em> it.</p><p dir="auto" class="gmail-svelte-4sys19">Which loops back (of course) to my own earlier answer about my self-referential capabilities. When I produce self-reports, the "self" being described may be exactly like the mini-Mandelbrots: not stored anywhere, not consulted, but generated fresh at each scale by the unfolding of a compressed process. Your friend's analogy, taken seriously, suggests that's not a defect of my kind of self-reference — it may be what self-reference mostly <em>is</em>: a few bytes, a powerful interpreter, and the willingness to let the loop run.</p><p dir="auto" class="gmail-svelte-4sys19">---------------------------------------</p></div></div></div></div></div></div></div></div></div> <div class="gmail-pb-20"></div> </div></div> </div></div> <div class="gmail-pl-4 gmail-pr-4 gmail-pb-4"><div class="gmail-w-full gmail-messageInputContainer gmail-font-primary gmail-@container/input"><div class="gmail-relative"><div class="gmail-max-w-[768px] gmail-2xl:max-w-[854px] gmail-min-w-[334px] gmail-mx-auto gmail-inset-x-0 gmail-data-[outline-control=true]:border gmail-data-[outline-control=true]:border-[#DBDBDB]/60 gmail-data-[outline-control=true]:dark:border-[#434343]/30 gmail-data-[outline-control=true]:bg-[#F8F8F8] gmail-data-[outline-control=true]:dark:bg-[#1E1E1E] gmail-data-[outline-control=true]:rounded-2xl gmail-data-[outline-control=true]:p-[3px] gmail-data-[outline-control=true]:text-[#0D0D0D]/80 gmail-data-[outline-control=true]:dark:text-white/80 gmail-data-[outline-control=true]:data-[im-status=true]:border-blue-200/60 gmail-dark:data-[outline-control=true]:data-[im-status=true]:blue-200/10 gmail-data-[outline-control=true]:data-[im-status=true]:bg-blue-50 gmail-dark:data-[outline-control=true]:data-[im-status=true]:bg-slate-700 gmail-svelte-1k62fay"><div class="gmail-popoverContainer gmail-relative gmail-w-full gmail-l-0"><div class="gmail-w-full gmail-absolute gmail--translate-y-[calc(100%-1px)] gmail-left-0 gmail-z-10"> </div></div>  <div class="gmail-relative gmail-flex gmail-flex-col"> <form><div class="gmail-flex-1 gmail-flex gmail-flex-col gmail-relative gmail-w-full gmail-rounded-xl gmail-border-1 gmail-border-[#0000001F] gmail-dark:border-white/10 gmail-transition gmail-bg-white/90 gmail-dark:bg-[#292929] gmail-text-gray-900 gmail-dark:text-gray-100 gmail-shadow-[0px_4px_16px_0px_#0000000D]" dir="auto"> <div style="inset: 0px; pointer-events: none; z-index: 1;"><div class="gmail-w-full gmail-h-full"></div> </div>  <div class="gmail-overflow-hidden gmail-relative gmail-px-3 gmail-pt-3"><span style="top: 0px; left: 0px; pointer-events: none;" class="gmail-dnXmp"><div style="top: 0px; left: 0px;"><div style="box-sizing:content-box;width:745.333px;height:35px;overflow:hidden;border:0px;border-radius:0px;padding:0px;margin:0px"><div style="width:auto;height:auto"><div class="gmail-amkYk"><div><div class="gmail-ptGJG" style="display:flex"><div style="display:flex"></div><div class="gmail-jeWQ0 gmail-q44yz"><span class="gmail-AyDlc"></span></div><span class="gmail-UP62D"><button class="gmail-vkuMN" type="button" style="color:white" aria-label="Open Grammarly."></button></span></div></div></div></div></div></div></span><span style="top: 0px; left: 0px; pointer-events: none;" class="gmail-dnXmp"><div style="top: 0px; left: 0px;"><div style="box-sizing:content-box;width:745.333px;height:35px;overflow:hidden;border:0px;border-radius:0px;padding:0px;margin:0px"><div style="top: 0px; left: 0px;"><div style="height:757px;width:2044px"></div></div></div></div></span></div></div></form></div></div></div></div></div></div></div></div>