docs: public static <K, V> Lens.Simple<Map<K, V>, Collection<V>> values() {
          return simpleLens(m -> new ArrayList<>(m.values()), (m, vs) -> {
              Map<K, V> updated = new HashMap<>(m);
              Set<V> valueSet = new HashSet<>(vs);
              Set<K> matchingKeys = Filter.<Map.Entry<K, V>>filter(kv -> valueSet.contains(kv.getValue()))
                      .andThen(map(Map.Entry::getKey))
                      .andThen(toCollection(HashSet::new))
                      .apply(updated.entrySet());
              updated.keySet().retainAll(matchingKeys);
              return updated;
          });
      }