code: public final <T extends Throwable> R orThrow(Function<? super L, ? extends T> throwableFn) throws T {
          return match((CheckedFn1<T, L, R>) l -> {
              throw throwableFn.apply(l);
          }, id());
      }
docs: Return the wrapped value if this is a right; otherwise, map the wrapped left value to a <code>T</code> and throw
  it.
  
  @param throwableFn a function from L to T
  @param <T>         the left parameter type (the throwable type)
  @return the wrapped value if this is a right
  @throws T the result of applying the wrapped left value to throwableFn, if this is a left