> I think we shouldn't rely on the assumption that all emacs inputs have > "emacs-" prefix Then, how to determine that a package is Emacs package? > , so I think > this procedure should check whether the input name begins with "emacs-" > before trying to remove this substring. >> + "-" version)) >> + name+version) >> + input))))) >> + (fold alist-delete (emacs-inputs inputs) '("emacs" "source"))) > > Since you already take only emacs inputs, is it really needed to remove > "emacs" and "source"? I mean emacs inputs do not contain "emacs" and > "source" anyway, right? emacs inputs contain "emacs-minimal" and "source". So we actually need to remove "emacs-minimal" instead "emacs". (emacs-inputs '(("emacs" . "/gnu/store/g1ldcr600kmdf2n1gsphk04hm30jr4bn-emacs-25.3") ("emacs-minimal" . "/gnu/store/p4smq1mw13lmpkdbs59d7w827hy7mvgy-emacs-minimal-25.3") ("emacs-dash" . "/gnu/store/dn7mygbi0pm985lz6qc64fsaz9f8zmfi-emacs-dash-2.13.0") ("emacs-shut-up" . "/gnu/store/k0zddbwfwpdgj1ih2ypl50n09dfxhq1f-emacs-shut-up-0.3.2") ("emacs-undercover" . "/gnu/store/ypcyxb3wpqlnf962k8ygp5csr6cmi6w3-emacs-undercover-0.6.0") ("source" . "/gnu/store/gyxjrmhk4xqd8r78blxb92f9xc1z92fr-emacs-pos-tip-0.4.6.tar.gz"))) (("emacs-minimal" . "/gnu/store/p4smq1mw13lmpkdbs59d7w827hy7mvgy-emacs-minimal-25.3") ("emacs-dash" . "/gnu/store/dn7mygbi0pm985lz6qc64fsaz9f8zmfi-emacs-dash-2.13.0") ("emacs-shut-up" . "/gnu/store/k0zddbwfwpdgj1ih2ypl50n09dfxhq1f-emacs-shut-up-0.3.2") ("emacs-undercover" . "/gnu/store/ypcyxb3wpqlnf962k8ygp5csr6cmi6w3-emacs-undercover-0.6.0") ("source" . "/gnu/store/gyxjrmhk4xqd8r78blxb92f9xc1z92fr-emacs-pos-tip-0.4.6.tar.gz")) Thanks, Oleg.