Subject: bug#62589: Help with patch with delayed evaluation

From: Nicolas Graves <[email-masked]>
Date: Sat, 01 Apr 2023 12:58:55 +0200

On 2023-04-01 12:28, Ludovic Courtès wrote:

> Hi,
>
> Nicolas Graves <[email-masked]> skribis:
>
>> +(define* (make-nerd-dictation-package
>> +          input-tool output-tool
>> +          #:key (nerd-dictation-package nerd-dictation))
>> +  "Construct a nerd-dictation package for OUTPUT-TOOL."
>> +  (match-let* (((input-name output-name)
>> +                (map (lambda (tool)
>> +                       (lazy
>> +                        (delay (package-name (force tool)))))
>> +                     (list input-tool output-tool))))
>> +    (package
>> +      (inherit nerd-dictation-package)
>> +      (name (string-append "nerd-dictation-"
>> +                           (if (equal? (force input-name) "sox")
>> +                               "sox-"
>> +                              "")
>> +                           (force output-name)))
>
> I don’t understand the details of what the patch does, but as a rule of
> thumb, make sure you only ever inherit from packages defined in the same
> module.

The patch defines a helper for defining variants of nerd-dictation. It
now supports wtype and I wasn't totally satisfied by international
support for ydotool, so I wanted to switch, but copying it make a lot of
repeated code.

I already defined such a helper with Liliana Marie Prinkler with
make-emacs-eval-in-repl, but this time I don't understand this error.

Josselin was suggesting a module import cycle, (gnu packages
machine-learning) is imported in (gnu packages audio), the error might
come from there. 

>
> Perhaps that’s what was going wrong?

I've tried inheriting from the above package direclty, doesn't seem to
be that.

> HTH,
> Ludo’.

-- 
Best regards,
Nicolas Graves