anchor.diff:  
   /// Fired when the user callback of a response is queued.
   class UserCallbackQueuedEvent implements TraceEvent {
  -  const UserCallbackQueuedEvent();
  +  factory UserCallbackQueuedEvent() => const UserCallbackQueuedEvent._private();
  +
  +  const UserCallbackQueuedEvent._private();
   
     String toString() => 'streamy.userCallback.start';
   }
   
   /// Fired when the user callback of a response completes.
   class UserCallbackDoneEvent implements TraceEvent {
  -  const UserCallbackDoneEvent();
  +  factory UserCallbackDoneEvent() => const UserCallbackDoneEvent._private();
  +
  +  const UserCallbackDoneEvent._private();
   
     String toString() => 'streamy.userCallback.done';
   }
   
   /// Fired when the response [Stream] has terminated.
   class RequestOverEvent implements TraceEvent {
  -  const RequestOverEvent();
  +  factory RequestOverEvent() => const RequestOverEvent._private();
  +
  +  const RequestOverEvent._private();
   
     String toString() => 'streamy.requestOver';
   }
  
positive.code:   void handleDone(EventSink<Response> sink, Trace trace) {
      _closed = true;
      if (_openCallbacks == 0) {
        trace.record(const RequestOverEvent());
      }
    }
  
  
negative.code:   UserCallbackTracingTransformer() : super();
  
    void handleData(Response response, EventSink<Response> sink, Trace trace) {
      trace.record(new UserCallbackQueuedEvent());
      _openCallbacks++;
      _runZonedWithOnDone(() => sink.add(response), () {
        trace.record(new UserCallbackDoneEvent());
        _openCallbacks--;
        if (_openCallbacks == 0 && _closed) {
          trace.record(new RequestOverEvent());
        }
      });
    }
  
    void handleError(error, EventSink<Response> sink, Trace trace) {
      trace.record(new UserCallbackQueuedEvent());
      _openCallbacks++;
      _runZonedWithOnDone(() => sink.addError(error), () {
        trace.record(new UserCallbackDoneEvent());
        _openCallbacks--;
        if (_openCallbacks == 0 && _closed) {
          trace.record(new RequestOverEvent());
        }
      });
    }
  