code: public <T extends R> T get(CheckedSupplier<T> supplier) {
      return call(execution -> Assert.notNull(supplier, "supplier"));
    }
docs: Executes the {@code supplier} until a successful result is returned or the configured policies are exceeded.
  
  @throws NullPointerException if the {@code supplier} is null
  @throws FailsafeException if the {@code supplier} fails with a checked Exception or if interrupted while
  waiting to perform a retry.
  @throws CircuitBreakerOpenException if a configured circuit is open.