(defun* matryoshka (x)
(yield 1)
(yield (yield (yield x))))
CL-USER> (defparameter a (matryoshka 2))
A
CL-USER> (funcall (iter-next a))
1
CL-USER> (funcall (iter-next a))
#S(ITER
:CUR #<CLOSURE (LAMBDA () :IN CL-GENERATOR::GEN-NEXT) {100605E56B}>
:NEXT NIL)
CL-USER> (funcall (iter-next a) 3)
3
CL-USER> (funcall (iter-next a) 4)
4
CL-USER> (funcall (iter-next a) 5)
5
example: