actually, it's even simpler - i don't need i at all:
()E/quine
(`dup `cons
`dup
`cons)
i.e. start evaluating on the empty stack (), and successively
feed pieces of quine. this is obvious if i replace / with \,
which returns successive states of the stack as a list:
()E\quine
(() / initial
,`dup `cons / push program
(`dup `cons / apply dup
`dup `cons)
(`dup `cons / apply cons
`dup
`cons))