Hello, thanks for your reply. Ludovic Courtès writes: > My understanding is that you intend the ‘interface’ field to be either > #f or a string, is that right? I think it rather be a list of strings, since wsdd takes the list of interfaces to listen to. So it should expand to --interface eth0 --interface eth1, etc. > When you write: > > (interface) > > that means: “call the procedure bound to ‘interface’, passing it zero > arguments”. However, if ‘interface’ is a string, you cannot call it, so > you get a wrong-type-to-apply error. > > Likewise, ‘for-each’ expects its second argument to be a list. But > here, ‘interface’ is supposedly a string, not a list, so if you do: > > (for-each (lambda …) interface) > > you’ll get a wrong-type-argument error. So I changed it, that interface is usually an empty list now, and with for-each I'd like to have it expanded. Good thing is, I've gotten at least a step further, but only after hard coding the list as an argument in the for-each expression. So it should work? It still doesn't. And I still don't understand how it is somehow not passed as a list properly. One thing I noticed, after hard coding the argument, the procedure is not properly expanded in the constructor. How come? This is the output in the service file: --8<---------------cut here---------------start------------->8--- (make-forkexec-constructor (list "/gnu/store/6jpn21wnnyz59ii634hfbk34yy48nxrq-wsdd-0.6.4/bin/wsdd" "--hoplimit" "1" for-each (lambda (arg) (format #t "--interface ~s " (arg))) (interface) "--workgroup" "WORKGROUP") #:user "wsdd" #:group "wsdd" #:log-file "/var/log/wsdd.log") --8<---------------cut here---------------end--------------->8--- My for-each procedure and list works in my REPL, but it fails in Guix. It might have to do with me trying to get on with make-forkexec-constructor. So this constructor needs a list of strings? I put interfaces into a let*, and would call it in the constructor. Unfortunately this results into an invalid G-expression. Thanks for you help. It is taking its time to get comfortable with Guile. I've attached the current state of the service too.