private static @NotNull <K, V> StrongValueReference<K, V> createStrongReference(@NotNull V value) {
    //noinspection unchecked
    return value == NULL_RESULT ? (StrongValueReference<K, V>)NULL_VALUE_REFERENCE
           : value == ResolveResult.EMPTY_ARRAY ? (StrongValueReference<K, V>)EMPTY_RESOLVE_RESULT
           : new StrongValueReference<>(value);
  }
private static @NotNull <K, V> StrongValueReference<K, V> createStrongReference(@NotNull V value)