have started looking at decompiling ELISP bytecode using the techniques from
uncompyle6 .
So far the results are promising. Of course one isn't going to get the exact source text back.
For the bytecode for source text
(setq a nil)
(setq b nil)
when decompiled gives the equivalent:
(setq a (setq b nil))
And
macros will be in their expanded form. But I believe nevertheless
programmers will have a very good idea of what was going on when an
error was raised.