public void select(ModuleVersionResolveState selected) {
   assert this.selected == null;
   this.selected = selected;
   for (ModuleVersionResolveState version : versions.values()) {
     version.state = ModuleState.Evicted;
   }
   selected.state = ModuleState.Selected;
 }
 public ModuleVersionResolveState clearSelection() {
   ModuleVersionResolveState previousSelection = selected;
   selected = null;
   for (ModuleVersionResolveState version : versions.values()) {
     version.state = ModuleState.Conflict;
   }
   return previousSelection;
 }