Brian Cully schreef op za 23-04-2022 om 12:03 [-0400]: > I was having a similar issue, so I dug into this issue a bit, > and it turns out that you *can* select an output from file-append, but > the syntax is a bit wonky: > > ---[snip]--- > (let ((fa (file-append pkg "/path"))) >   $~$#fa:output) > ---[snip]--- > > I’ve tried to remove the let: > > ---[snip]--- > $~$#(file-append pkg "/path"):output > ---[snip]--- Do you mean #~#$fa:output here? > > But this confuses the reader, an it things ‘:output’ is a > variable. Not too surprising, but it does make the Guix configuration > files more awkward, since now you have to ‘define’ the file-append > operations at the top level so you can refer to them with the syntax > above. > > I would prefer to have something like any of the following (in > order of preference): > > ---[snip]--- > (file-append pkg:output "/path") This one is only possible if file-append becomes syntax instead of a procedure. > (file-append (list pkg "output") "/path") Possible, but seems semantically wrong to me -- what's a list doing in a file-manipulating procedure? > (file-append $~$#pkg:output "/path") I assume this would be #~#$pkg:output? My bikeshed proposal: (file-append (output glibc "static") "/lib/...") Here, 'output' is a procedure constructing some kind of object. This would also be useful outside 'file-append', as it allows programmatically constructing equivalents #~#$pkg:output for multiple 'output' (there was some package definition some while back where this would have been useful). This 'output' could perhaps also be used in 'inputs' / 'native-inputs' fields. YMMV. Greetings, Maxime.