hm. having copied that again, i’m not sure why i did
Snapshot <- Digest
there.
perhaps that was ergonomic, because you can discard the Paths immediately if you don’t need them.
but the implementation is roughly: 1) expand PathGlobs into Path(Stats), 2) digest all Paths to compute a Digest for the whole thing, 3) compose the Digest and the Paths into a Snapshot