code: public static <T, X extends Exception> T retry(
        CheckedCallable<T, X> callable,
        BackOff backoff,
        RetryDeterminer<? super X> retryDet,
        Class<X> classType)
        throws X, InterruptedException {
      return retry(callable, backoff, retryDet, classType, Sleeper.DEFAULT);
    }
docs: Retries the given executable function in the case of transient errors defined by the
  RetryDeterminer and uses default sleeper.
  
  @param callable CheckedCallable to retry execution of
  @param backoff BackOff to determine how long to sleep for
  @param retryDet RetryDeterminer to determine when to retry
  @param classType class type of X
  @param <T> Type of object returned by the call.
  @param <X> Type of exception thrown by the call.
  @throws X What is thrown from the executable or the RetryDeterminer
  @throws InterruptedException - Exception thrown from sleep