Subject: 2.2.1 syntax objects are not comparable

From: [email-masked] (Ludovic Courtès)
Date: Thu, 20 Apr 2017 22:52:59 +0200

Hello,

The “new” syntax objects in 2.2.1 cannot be compared with ‘equal?’,
unlike the “old” ones, which were just vectors.

It’s easy to fix in libguile, but was it intended?  If not, I’ll happily
send a patch.

Of course syntax objects were never officially comparable, but it turns
out that the ‘gexp’ macro in (guix gexp) relies on that when it rewrites
the syntax tree.

I tried to see if we could implement this macro differently, without
doing an explicit tree traversal, possibly using syntax parameters for
‘ungexp’ & co.  However, the difficulty is that the job of this macro
cannot be done in a single pass AFAICS.

Thoughts?

Ludo’.