let gen = \x. if x <= 0 then lift 0 else App (App (Bound "plus") (Bound "y")) (this (output (x + -1))) in let code = gen 2 in let double = \y. eval(code) in double 3 + double 4 // prints 1, 0