code: public <T extends Client<I, O>, R extends Client<I, O>, I extends HttpRequest, O extends HttpResponse>
      B decorator(Function<T, R> decorator) {
          decoration.add(decorator);
          return self();
      }
docs: Adds the specified HTTP-level {@code decorator}.
  
  @param decorator the {@link Function} that transforms a {@link Client} to another
  @param <T> the type of the {@link Client} being decorated
  @param <R> the type of the {@link Client} produced by the {@code decorator}
  @param <I> the {@link Request} type of the {@link Client} being decorated
  @param <O> the {@link Response} type of the {@link Client} being decorated