(examples-for explain-mac

("does nothing if n is zero"
 (explain-mac 0 '(afn (a) (let b (+ 2 a) (* b b))))
 (afn (a) (let b (+ 2 a) (* b b))))

("expands once for n = 1; does not expand inside forms"
 (explain-mac 1 '(afn (a) (let b (+ 2 a) (* b b))))
 (rfn self (a) (let b (+ 2 a) (* b b))))

("expands twice for n = 2"
 (explain-mac 2 '(afn (a) (let b (+ 2 a) (* b b))))
 (let self nil (assign self (fn (a) (let b (+ 2 a) (* b b))))))

("expands thrice for n = 3"
 (explain-mac 3 '(afn (a) (let b (+ 2 a) (* b b))))
 ((fun (self) (assign self (fn (a) (let b (+ 2 a) (* b b))))) nil))

("expands four times for n = 4"
 (explain-mac 4 '(afn (a) (let b (+ 2 a) (* b b))))
 ((fun (self) (assign self (fn (a) (let b (+ 2 a) (* b b))))) nil))

("returns same expression for n > number of possible expansions"
 (explain-mac 10 '(afn (a) (let b (+ 2 a) (* b b))))
 ((fun (self) (assign self (fn (a) (let b (+ 2 a) (* b b))))) nil)))