Dirk Herrmann <[EMAIL PROTECTED]> writes:

> Thus, you see, guile should not have accepted that macro as a parameter
> for reduce.  However, stupidly, guile accepted it and then 'rewrote' that
> function in memory.  Thus, (procedure-source reduce) before and after
> passing that macro looked different.

Yes.

However, I don't think we should try to fix this problem in the
current system.  There are further problems with Guile macros.
The problem is not so much in the implementation as in the design of
the current Guile macros.

The correct solution is to write a new hygienic macro system.

We have that in the (ice-9 syncase) module, but it should be rewritten
in C (and probably in a different way).

Until then, using

  (define-module (my-module)
    :use-syntax (ice-9 syncase))

will detect this kind of problems.

Reply via email to