code: public static <K, V> Map<K, V> immutableMapWrap(Map<? extends K, ? extends V> map) {
        return new ImmutableMapWrapper<>(map);
     }
docs: Wraps a map with an immutable map. There is no copying involved.
  
  @param map the map to wrap
  @return an immutable map wrapper that delegates to the original map