static Web web_clusterClean(Web web) {
  ret web_clusterClean(web, clustersForWeb(web));
}
  
static Web web_clusterClean(Web web, Clusters<S> clusters) {
  if (empty(clusters)) ret web;
  for (WebNode node : web_nodesAndRelations(web)) {
    new L<Lisp> labels;
    for (Lisp l : node.labels) {
      S s = first(clusters.get(web.unparseLabel(l)));
      setAdd(labels, s != null ? web.parseLabel(s) : l);
    }
    web_setLabels(node, labels);
  }
  ret web;
}