I don't think we need this. You could provide an abstract class which implements `Callback` for behavior customization. We do something like this:
```java
public abstract class RestCallback<T> implements Callback<T> {
  @Override public final void failure(RetrofitError e) {
    Response r = e.getResponse();
    if (r != null) {
      int status = r.getStatus();
      if (status >= 500) {
        serverError(r);
      } else if (status == 401) {
        sessionExpired(r);
      } else if (status >= 400) {
        clientError(r);
      } else {
        throw new AssertionError(e);
      }
    } else if (e.isNetworkError()) {
      networkError(e.getCause());
    } else {
      unexpectedError(e.getCause());
    }
  }

  public abstract void sessionExpired(Response r);
  public abstract void clientError(Response r);
  public abstract void serverError(Response r);
  public abstract void networkError(Throwable e);
  public abstract void unexpectedError(Throwable e);
}
```