@Contract(value = "_, _ -> new", pure = true)
  static <T, U> @NotNull Pointer<T> uroborosPointer(
    @NotNull Pointer<? extends U> underlyingPointer,
    @NotNull BiFunction<? super U, ? super Pointer<T>, ? extends T> restoration
  ) {
    return new DelegatingPointer.ByValueAndPointer<>(underlyingPointer, restoration);
  }
@Contract(value = "_, _ -> new", pure = true)
  static <T, U> @NotNull Pointer<T> uroborosPointer(
    @NotNull Pointer<? extends U> underlyingPointer,
    @NotNull BiFunction<? super U, ? super Pointer<T>, ? extends T> restoration
  )