Hi Ludo, > I guess it’s easy to end up creating huge object graphs. Here’s an > example of an anti-pattern: > > (define a > ((package-input-rewriting x) ((package-input-rewriting y) p1))) > > (define b > ((package-input-rewriting x) ((package-input-rewriting y) p2))) > > The correct use is: > > (define transform > (package-input-rewriting (append x y))) > > (define a (transform p1)) > (define b (transform p2)) that sounds like a section for the cookbook :) > It seems to me that you’re redefining a dependency graph, node by node. > Thus, you probably don’t need ‘package-input-rewriting’ here. What you > did in Guix-Science commit 972795a23cc9eb5a0bb1a2ffb5681d151fc4d4b0 > looks more appropriate to me, in terms of style and semantics. Okay, got it. My initial concern was that rewriting the graph “by hand” (i.e. alist-delete) would be tedious and error-prone. Thank you very much, Lars -- Lars-Dominik Braun Wissenschaftlicher Mitarbeiter/Research Associate www.leibniz-psychology.org ZPID - Leibniz-Institut für Psychologie / ZPID - Leibniz Institute for Psychology Universitätsring 15 D-54296 Trier - Germany Tel.: +49–651–201-4964