code: public static <M extends Map<K, V>, K, V> Lens<Map<K, V>, M, M, M> asCopy(
              Function<? super Map<K, V>, ? extends M> copyFn) {
          return lens(copyFn, (__, copy) -> copy);
      }
docs: A lens that focuses on a copy of a {@link Map} as a subtype <code>M</code>. Useful for composition to avoid
  mutating a map reference.
  
  @param <M>    the map subtype
  @param <K>    the key type
  @param <V>    the value type
  @param copyFn the copy function
  @return a lens that focuses on copies of maps as a specific subtype