pub fn prune(
paths: &DataPaths,
plan: &Plan,
in_use: &dyn Fn() -> InUse,
) -> ReportExpand description
Remove what plan_prune found, re-checking each directory at the last
moment: in_use is asked again (a CLI may have started since the plan),
and a shared install’s lock must be free. The completion marker goes FIRST,
so a directory half removed by a crash is already “not an install” and the
next install into it clears the rest.