docs: @SuppressWarnings("unused")
      private // until I can get this to work
      <T extends Throwable> void rethrowCauseOfType(Class<T> type)
          throws Throwable // this should be throws T
      {
          T cause = causeOfType(type);
  
          // rethrow acts as if its always throwing Throwable, not the subclass.
          if (cause != null) throw cause;
      }