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’.