default <S extends AutoCloseable, E extends Throwable> @NotNull S wrapStorageSafely(@NotNull Path storagePath,
                                                                                      @NotNull ThrowableNotNullFunction<? super A, ? extends S, E> anotherStorageOpener)
    throws IOException, E {
    return IOUtil.wrapSafely(
      open(storagePath),
      storage -> anotherStorageOpener.fun(storage)
    );
  }
default <S extends AutoCloseable, E extends Throwable> @NotNull S wrapStorageSafely(@NotNull Path storagePath,
                                                                                      @NotNull ThrowableNotNullFunction<? super A, ? extends S, E> anotherStorageOpener)