got you. 
My macro should have been


(defmacro mac()
  `(progn
     (message "%S" ,ii)
     (sit-for 0.1)))

So, the original macro had a brain-fart basically amounted to returning nil unconditionally.
In that case, why were we getting that strange error? 



On Sun, Nov 5, 2023 at 1:04 AM Gerd Möllmann <gerd.moellmann@gmail.com> wrote:
Dave Goel <deego3@gmail.com> writes:

> On Sun, Nov 5, 2023 at 12:06 AM Dave Goel <deego3@gmail.com> wrote:
>
>> (progn
>>   (setq lexical-binding nil)
>>
>>   (dotimes (ii 10)
>>     (defmacro mac ()
>>       `(message "%S" ,ii)
>>       (sit-for 0.1))

The macro expansion of mac is what it returns, which is what sit-for
returns...