Hi Justin, Justin Veilleux writes: >> (define packages >> (list >> (cons "coreutils" coreutils) >> (cons "make" gnu-make) >> ...)) >> >> #~(for-each >> (lambda (f) >> ... do-something) >> '#$packages) > > If I send a patch to "fix" this, will it be usefull or is there a reason > for this behavior? I think IMO that it's a bug, but it's also quite tricky to properly traverse deep structures like this. The bug comes from the fact that in gexp->sexp, we traverse lists by matching the reference with (refs ...), but that doesn't match if the reference is a pair instead. Then, it tries to match with ($ (? self-quoting? x)), which does match since self-quoting? apparently returns #t on a pair, whether or not its constituents are also self-quoting. Best, -- Josselin Poiret