Hi, David Elsing skribis: > I meant that in 'graft-derivation/shallow', the 'mapping' variable is a > list of gexps, where 'ungexp' is called on the graft-replacement of the > grafts. So instead of turning the monadic value into a derivation > beforehand, this could be done here instead, right? Considering a > gexp-compiler returns a store monad value of a derivation (IIUC), my > question was whether it is possible to use such a value in a gexp > directly (i.e. without the 'return' in the gexp-compiler for a > derivation, such that the evaluation of the derivation is delayed until > the gexp is lowered to a derivation). These values would still need to > be identified by 'procedure?' I guess, so it would not be better than > currently. > Does this make sense or did I misunderstand something? Oh, got it. Yes, we could keep a in the ‘replacement’ field instead of explicitly calling ‘package->derivation’. It’s much simpler, that’s a good idea. I gave it a try, see patch attached. Let me know what you think! Ludo’.