static <K, V, M extends PersistentMapBase<? super K, ? super V>> M canonicalize(
    final @NotNull PersistentMapBase<K, V> originalMap,
    final @NotNull /* @OutParam */ M targetCanonicalMap,
    final @NotNull Function<List<K>, List<K>> stableKeysSorter) throws IOException {
    
    return canonicalize(originalMap, targetCanonicalMap, stableKeysSorter, Function.identity());
  }
static <K, V, M extends PersistentMapBase<? super K, ? super V>> M canonicalize(
    final @NotNull PersistentMapBase<K, V> originalMap,
    final @NotNull /* @OutParam */ M targetCanonicalMap,
    final @NotNull Function<List<K>, List<K>> stableKeysSorter)