Paul Alesius schreef op do 21-04-2022 om 22:41 [+0200]: > > Also, #f is not a string, did you mean ‘;#f|string’? > > The idea behind #f is that the field is optional, so that if it isn't > specified in the configuration then it isn't written to the > configuration file at all, hence #f is for a conditional when writing > the actual configuration file and has no default value. It's optional in the generated wireguard configuration file, but not in the Guix record -- Guile records don't have a concept of optional fields, though there are fields with default values. Though apparently conventions are a bit inconsistent in Guix on this matter. wireguard-configuration just does ;string, but does (define-record-type* [...] (tty agetty-configuration-tty) ;string | #f (term agetty-term ;string | #f (default #f)) (baud-rate agetty-baud-rate ;string | #f (default #f)) (auto-login agetty-auto-login ;list of strings | #f (default #f)) [...] Greetings, Maxime.