We have just started and there is already a mistake. I must admit that I had envisioned already that problem in the previous post. The trick is that a MACROLET and a SYMBOL-MACROLET form must take into account outer defitinitions when creating the new definitions. For instance, here
(macrolet ((a () 5))
(macrolet ((b () (a)))
(b)))
in order to expand the definition (b), the form (a) is evaluated at compilation time and thus we need the definition of that macro to be present. The appropriate fix has been added together with a new test case.