zimoun <zimon.touto...@gmail.com> writes:
> Hi, > > I am missing something and I do not find my way, so maybe someone could > explain me what I am doing wrong. I'll try. UwU > Let start with this example. > > (use-modules (srfi srfi-1) > (ice-9 match) > (guix packages) > (gnu packages)) > > (define (package+propagated-inputs package) > (match (package-transitive-propagated-inputs package) > (((labels packages) ...) > (cons package packages)))) > > > (define (something) > 42) > So this will take one of these values with the later edits you talk about: 42 '(42) '(42 42) And this is used... > > (define (an-example) > > (define build > (with-extensions (package+propagated-inputs > (specification->package "guile-json")) > (with-imported-modules '((guix build utils) > (json)) > #~(begin > (use-modules (guix build utils) > (json)) > > (define that > #+(something)) ...here! The later use of "that" is not important. >... When you spliced (not sliced) it, you got: ``` (define that (42)) ``` As you can see, that is an unqouted list. The fix should be pretty simple: just add an extra quote. Haven't tested it, but one of these should work: ``` (define (something) ''(42)) ;; or (quote #+(something)) ``` I'm pretty sure I've run into this in a service definition and used the latter.