>>319
(m1 a) → (m2 x a)
(m2 a b) → (let ((a 100)) b)
とゆうマクロがあったときに、(m1 x) → (m2 x x)と展開するとどうなるか。
(define x 200)
(define y 200)

(m1 x) → (m2 x x) → (let ((x 100)) x) → 100
(m1 y) → (m2 x y) → (let ((x 100)) y) → 200

はいじにっくじゃない!!!!!!ひどい!!!!
というわけで、「外から渡されたもの」と「自分のテンプレートにより生成されたもの」は区別しなきゃいけないのよ。