code: @Override
      public Try<T> recoverWith(ThrowableFunction1<Throwable, Try<T>> function) {
          try {
              return function.apply(throwable);
          }
          catch(Throwable t) {
              return new Failure<>(t);
          }
      }
docs: Applies the provided function to the Throwable of this {@link Failure} and returns the result.
  
  @since 1.4