docs: @Beta // TODO(kevinb): decide best return type
    public static List<Throwable> getCausalChain(Throwable throwable) {
      checkNotNull(throwable);
      List<Throwable> causes = new ArrayList<Throwable>(4);
      while (throwable != null) {
        causes.add(throwable);
        throwable = throwable.getCause();
      }
      return Collections.unmodifiableList(causes);
    }