Which of the three home-module leaves a reference is — the
module itself (Self), construction (#Self(…)), and the payload read
(x.Self). They share one variant because they share the whole of their
machinery — one walk to the terminal, one parse clause each, no capture —
and differ only in what they evaluate to once it is found.
#Self(…) / #Self … — the object constructor over the home module:
the object builtin with the module already applied, so what is left
takes the payload. Always the callee of an App — a bare
#Self is refused at parse — so it renders as (new …), never alone.
x.Self — the payload reader over the home module, the same shape. In
pattern position the spelling is the Pattern::Unwrap qualifier
Self <pat> instead. Like New it is only ever an
App callee.
The name the resolver reports a leaf by when it sits outside a module
body: every form is spelled Self, so the one error names the one word
(see docs/done/2026-09-11_elly-v1-self.md).