Thank you, @soegaard, that makes sense.
Question: would it be possible to write a macro that automatically replaced something like (ellipse n)
with the appropriate level of nested escapes, say
(ellipse 0) ≡ ...
(ellipse 1) ≡ (... ...)
(ellipse 2) ≡ ((... ...) (... ...))
etc.
Would it be a reader macro? I don't know much about them, but when I think of the problem, I assume it must happen before any actual pattern matching and application occurs, at least for the contexts where it [the "macro"] appears.