I found a solution: change the depth-first traversal to a breadth-first traversal -- it uses (pfds hamts) from guile-pfds instead of (guix sets)/(ice-9 vlist), so will need some small changes for use in Guix (unless the additional dependency is considered acceptable), but it should at least unblock the workspace implementation in antioxidant. Greetings, Maxime.