I admit that I didn't watch the video; so I don't know why `code` is
even needed, considering that the following expression (which is your
original expression but without `code` parts) gives you what you want
(('((Gen) (Gen Gen))
(list '(N) (list 'if '(=0 N) 1 (list '* 'N (list Partial '(- N 1))))))
(list (cons 'quote Gen) (cons 'quote Gen)))))
5) # (fact 5) is computed by this expression.
I know that doesn't answer your question, Christophe; just an