code: public final <L> Either<L, A> toEither(Function<? super T, ? extends L> fn) {
          return match(fn.andThen(Either::left), Either::right);
      }
docs: If this is a success, wrap the value in a {@link Either#right} and return it. Otherwise, apply the mapping
  function to the failure {@link Throwable}, re-wrap it in an {@link Either#left}, and return it.
  
  @param fn  the mapping function
  @param <L> the {@link Either} left parameter type
  @return {@link Either} the success value or the mapped left value