docs: public static <X, CX extends Collection<X>> Lens.Simple<CX, Set<X>> asSet(
              Function<? super CX, ? extends CX> copyFn) {
          return simpleLens(HashSet::new, (xsL, xsS) -> {
              Set<X> missing = new HashSet<>(xsS);
              missing.removeAll(xsL);
              CX updated = copyFn.apply(xsL);
              updated.addAll(missing);
              updated.retainAll(xsS);
              return updated;
          });
      }