I mean, `jq` does in-place mutations when the values being mutated have just one reference. With a lot of care one can really make that shine. `jq` has been doing this since day 1, years ago, though it's had a few bugs in `reduce` that had to get fixed.