{at-both-times {define fact [|n| (if (= n 0) [1] [(* n (fact (- n 1)))])]}} (pp {at-compile-time-expand (fact 3)}) (pp (fact 3))