Hi, Tomas Volf <[email protected]> writes:
[...] > One could argue that when looking at > > (let ((services (modify-services ...))) > (operating-system > (inherit %base-os) > (services services))) > it is obvious what it *should* do (and what it looks like it is doing). > Yet here we are. So while this change definitely satisfies the latter > part of the goal, I still question alignment to the former. I'm also uneasy with the above, but I guess it's not that different compared the current magical features of Guix records like binding 'version' from the point where it's defined in the package. That it depends on the thunkness of the field makes it a bit unwieldy to reason with, though. Perhaps the syntax could be refined even more to emit a warning when a a variable name already bound in the scope gets shadowed by this new mechanism? This would help greatly detecting potential problems and reduce the cognitive burden associated with trying to foresee problems/writing correct code. -- Thanks, Maxim
